繁体   English   中英

Google Analytics阻止Android应用

[英]Google Analytics blocks Android App

我在Android应用中使用Google Analytics,效果很好。 将SDK(google play服务)更新为当前版本(6587000)后,应用程序会在启动时挂起以下第8行,共10次:

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);

控制台中没有错误。 我也添加了成就和排行榜,但首先调用了Analytics。 我也改变了上下文,但这有时有效,有时则无效。

我获得可重现结果的唯一一次是,当我从AndroidManifest.xml中删除以下行时。 然后在启动时不再冻结。

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

但我的配置是正确的:

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <string name="ga_appName">TestAppName</string>
  <string name="ga_appVersion">Version1.0</string>
  <string name="ga_logLevel">verbose</string>
  <integer name="ga_dispatchPeriod">1000</integer>
  <bool name="ga_dryRun">true</bool>
</resources>

如果我更改配置,则会产生相同的结果:应用程序在启动时冻结的10次中有8次。

有人知道问题是什么或者我可以检查什么以使我的应用程序再次运行而不会在启动时冻结?

我有类似的我删除了以下代码和应用程​​序运行..

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

并为getTracker类添加以下代码...使用Java代码而不是XML approch构建GoogleAnalytics

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 Play Services 6.5中的一个已知错误。

此问题已在 2015年3月19日发布的Google Play Services 7.0中修复。升级到7.0可修复死锁。 https://developer.android.com/google/play-services/index.html

每次我打电话给GoogleAnalytics.getInstance(这个)时,我都有同样的ANR问题。 当应用中的Google Play服务版本与设备上安装的版本不匹配时,似乎会出现此问题。

我通过检查Google Play服务是否“可用”解决了这个问题:

if (GooglePlayServicesUtil.isGooglePlayServicesAvailable(this) == ConnectionResult.SUCCESS) {
    GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
    // Create your tracker...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM