我从使用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配置不再起作用的原因是什么,以及以编程方式配置的含义是什么?
答案 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'