gpt4 book ai didi

java - 设置 Google Analytics 时出错

转载 作者:行者123 更新时间:2023-12-02 04:04:58 26 4
gpt4 key购买 nike

我正在尝试在我的应用程序中设置谷歌分析。我按照下面的谷歌教程 https://developers.google.com/analytics/devguides/collection/android/v4/

但出现以下错误

Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to

当我将下面的代码放入 MainActivity 中的创建时:

 AnalyticsApplication application = (AnalyticsApplication) getApplication();
mTracker = application.getDefaultTracker();

AnalyticsApplication 类:

import android.app.Application;

导入com.google.android.gms.analytics.GoogleAnalytics;导入 com.google.android.gms.analytics.Tracker;

公共(public)类 AnalyticsApplication 扩展了应用程序{

private Tracker mTracker;

synchronized public Tracker getDefaultTracker() {
if (mTracker == null) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
// To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG
mTracker = analytics.newTracker(R.xml.global_tracker);
}
return mTracker;
}

}

GRADLE项目

classpath 'com.google.gms:google-services:1.5.0-beta2'

梯度模块

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.google.android.gms:play-services-ads:8.3.0'
compile 'com.google.android.gms:play-services-analytics:8.3.0'


compile 'com.google.android.gms:play-services-appindexing:8.3.0'

}应用插件:'com.google.gms.google-services'

AndroidMaifest

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>


<service
android:name=".CallDetectService"
android:enabled="true"
android:exported="false" >
</service>

<receiver
android:name=".RingerModeStateReceiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.media.RINGER_MODE_CHANGED" />
</intent-filter>
</receiver>
<!-- ATTENTION: This was auto-generated to add Google Play services to your project for
App Indexing. See https://g.co/AppIndexing/AndroidStudio for more information. -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

</application>

我还将配置文件复制到应用程序目录中。如果我省略主 Activity 中的代码,我的应用程序将运行,但不会显示任何内容在我的 Analytics 帐户中。

任何帮助将不胜感激。我按照谷歌教程进行操作,但没有发生任何事情,然后当我将代码放入主 Activity 中时,我的应用程序会崩溃。

最佳答案

要在 list 文件中声明应用程序类,请在应用程序标记中使用 android:name="com.example.AnalyticsApplication"。

或者使用分析帮助器类:

public class AnalyticsHelper {

private static HashMap<TrackerName, Tracker> sTrackers = new HashMap<TrackerName, Tracker>();

public static synchronized Tracker getTracker(Context context, TrackerName trackerId) {
if (!sTrackers.containsKey(trackerId)) {

GoogleAnalytics analytics = GoogleAnalytics.getInstance(context);
Tracker t = null;

switch (trackerId) {
case APP_TRACKER:
t = analytics.newTracker(R.xml.analytics_app_tracker);
break;
}

sTrackers.put(trackerId, t);
}
return sTrackers.get(trackerId);
}

public enum TrackerName {
APP_TRACKER, // App specific tracker ID
}
}

并调用您的Application类的AnalyticsHelper.getTracker(this, TrackerName.APP_TRACKER)

关于java - 设置 Google Analytics 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34416873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com