Android GoogleAnalytics在getInstance上崩溃了

时间:2015-01-08 15:06:10

标签: android google-play-services

我从使用Google Play服务6.1切换到6.5。 GoogleAnalytics陷入僵局:

getInstance(context); 

我发现了这个问题:Android GoogleAnalytics getInstance 其中第二个答案建议从清单文件中删除元数据。

meta-data android:name="com.google.android.gms.analytics.globalConfigResource"     
android:resource="@xml/global_tracker"

由于global_tracker.xml包含以下内容:

<resources>
    <integer name="ga_sessionTimeout">300</integer>
    <bool name="ga_reportUncaughtExceptions">true</bool>
    <integer name="ga_dispatchPeriod">30</integer>
</resources>

我用这些编程配置替换了xml:

GoogleAnalytics googleAnalytics = GoogleAnalytics.getInstance(mContext);
googleAnalytics.setLocalDispatchPeriod(30);

mGATracker = googleAnalytics.newTracker(mTrackerId);
mGATracker.setSessionTimeout(300);
mGATracker.enableExceptionReporting(true);

xml配置不再起作用的原因是什么,以及以编程方式配置的含义是什么?

1 个答案:

答案 0 :(得分:3)

更新

请查看iOSched 2014:https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/util/AnalyticsManager.java

原件:

你不是唯一的一个。 Google Play Services 6.5.87存在死锁问题。

请遵循:

https://code.google.com/p/android/issues/detail?id=82157

来自上面的链接:

Google Analytics blocks Android App

从AndroidManifest.xml中删除它:

<meta-data 
android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/analytics_global_config" />

使用Google Analytics计划,而不是使用XML:

synchronized Tracker getTracker (TrackerName trackerId){
    Log.d(TAG, "getTracker()");
    if (!mTrackers.containsKey(trackerId)) {
        GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);

        // Global GA Settings
        // <!-- Google Analytics SDK V4 BUG20141213 Using a GA global xml freezes the app! Do config by coding. -->
        analytics.setDryRun(false);

        analytics.getLogger().setLogLevel(Logger.LogLevel.INFO);
        //analytics.getLogger().setLogLevel(Logger.LogLevel.VERBOSE);

        // Create a new tracker
        Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(R.xml.ga_tracker_config) : null;
        if (t != null) {
            t.enableAdvertisingIdCollection(true);
        }
        mTrackers.put(trackerId, t);
    }
    return mTrackers.get(trackerId);
}

不推荐:

在Google修复其死锁问题之前,请使用:

compile 'com.google.android.gms:play-services:6.1.71'

而不是:

compile 'com.google.android.gms:play-services:6.5.87'