繁体   English   中英

自定义全局配置会导致Google Analytics(分析)v4崩溃

[英]Google Analytics v4 crashes with custom global config

我尝试将自定义全局配置文件添加到我的应用程序,但它始终导致应用程序崩溃。 如果我删除了自定义的gloabl配置文件,一切都会正常。

导致崩溃的事件的特定版本是:

  • 启动应用程序,第一次即可正常运行
  • 使用任务杀手杀死应用
  • 重新加载应用程序后,该应用程序不再启动,通常只是加载黑屏。

没有日志指示错误。 该应用程序将不会第二次加载。

我添加了下面使用的代码,这些代码大部分是从google文档中复制的

全局配置添加到清单

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

全局配置文件

<string name="ga_appName">AppName</string>
<string name="ga_appVersion">Version1.1.0</string>

<!--Remember to set to WARNING log level for production -->
<string name="ga_logLevel">verbose</string>

<!--time before hit is sent to google -->
<integer name="ga_dispatchPeriod">30</integer>

<!--Remember to set to FALSE for production version-->
<bool name="ga_dryRun">true</bool>

Application类中的跟踪器代码

HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
public enum TrackerName {
    APP_TRACKER,
}


// creates analytics tracker
public synchronized Tracker getTracker(TrackerName trackerId) {
    if (!mTrackers.containsKey(trackerId)) {
        GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
        Tracker t = analytics.newTracker(R.xml.app_tracker);
        t.enableAdvertisingIdCollection(true);
        mTrackers.put(trackerId, t);
    }
    return mTrackers.get(trackerId);
}

在BaseActivity类中初始化跟踪器的代码

((MyApplication) getApplication()).getTracker(MyApplication.TrackerName.APP_TRACKER); 

我有点无所适从,没有日志输出,文档也很稀疏,因此不胜感激,不胜感激!

谢谢

经过一些试验,我找到了解决该问题的方法。 我删除了global_config.xml并删除了清单文件中的引用。

相反,我在getTracker方法中设置了全局配置参数

// creates analytics tracker
public synchronized Tracker getTracker(TrackerName trackerId) {
    if (!mTrackers.containsKey(trackerId)) {
        GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
        analytics.setDryRun(true);
        analytics.setLocalDispatchPeriod(1000);
        analytics.getLogger().setLogLevel(com.google.android.gms.analytics.Logger.LogLevel.VERBOSE);
        Tracker t = analytics.newTracker(R.xml.app_tracker);
        t.enableAdvertisingIdCollection(true);
        mTrackers.put(trackerId, t);
    }
    return mTrackers.get(trackerId);
}

该应用程序现在可以通过自定义全局配置正常运行,并且不会崩溃!

暂无
暂无

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

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