Java 设置Google Analytics时出错
我正在尝试在我的应用程序中设置google analytics。我遵循下面的谷歌教程 但有以下错误Java 设置Google Analytics时出错,java,android,google-analytics,Java,Android,Google Analytics,我正在尝试在我的应用程序中设置google analytics。我遵循下面的谷歌教程 但有以下错误 Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to 当我将下面的代码放入Main活动中的on create时: AnalyticsApplication application = (AnalyticsApplication) getApplication(); mTr
Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to
当我将下面的代码放入Main活动中的on create时:
AnalyticsApplication application = (AnalyticsApplication) getApplication();
mTracker = application.getDefaultTracker();
分析应用类:
import android.app.Application;
导入com.google.android.gms.analytics.GoogleAnalytics;
导入com.google.android.gms.analytics.Tracker
公共类分析应用程序扩展了应用程序{
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.googleservices”
AndroidMaifest
<?xml version="1.0" encoding="utf-8"?>
我还将配置文件复制到应用程序目录中。
如果我在主活动中省略代码,我的应用程序将运行,但不会显示任何内容
在我的分析账户中
任何帮助都将不胜感激。
我遵循了谷歌教程,但什么也没发生,当我将代码放入主活动时,我的应用程序会崩溃。要在清单文件中声明应用程序类,请在应用程序标记中使用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
}
}
公共类分析工具{
私有静态HashMap sTrackers=newhashmap();
公共静态同步跟踪程序getTracker(上下文上下文,TrackerName trackerId){
如果(!sTrackers.containsKey(trackerId)){
GoogleAnalytics analytics=GoogleAnalytics.getInstance(上下文);
跟踪器t=null;
开关(trackerId){
案例应用程序跟踪程序:
t=analytics.newTracker(R.xml.analytics\u app\u tracker);
打破
}
sTrackers.put(trackerId,t);
}
返回sTrackers.get(trackerId);
}
公共枚举跟踪名{
应用程序跟踪程序,//特定于应用程序的跟踪程序ID
}
}
并调用
AnalyticsHelper.getTracker(this,TrackerName.APP\u TRACKER)
你的应用程序类。Hi,你能给我们看一下你的清单文件吗?不,需要使用扩展到应用程序类的重锤。通过向跟踪程序传递上下文对象来获取跟踪程序。Manifest在应用程序标记中没有声明任何应用程序类。您好,谢谢,您能给我一个简短的代码示例说明这看起来如何吗,因为我还是很amuater@AndRSoid如何在清单中更正此问题?通过直接将ti添加到清单中,将分析类添加到我的androidManifest后,我的应用程序现在运行,但我的分析帐户上仍然没有显示任何内容。我必须发送事件吗?像一个成功的建设者?是的,它很有效!最后谢谢你@AndRSoid。将AnalyticsApplication类添加到我的android清单中就成功了!它只是花了一段时间才注册。“实时”现在也可以工作了,而且几乎可以在瞬间工作,谢谢你,圣诞快乐!:)
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
}
}