簡體   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