Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置Google Analytics时出错_Java_Android_Google Analytics - Fatal编程技术网

Java 设置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

我正在尝试在我的应用程序中设置google analytics。我遵循下面的谷歌教程

但有以下错误

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
    }
}