Google Analytics中的并发修改例外

时间:2017-12-18 22:49:43

标签: android google-analytics

我正在将Google Analytics用于Android应用。代码通常工作正常。但是在生产中,Google Analytics代码偶尔会因ConcrruentModificationException而失败。 Crashlytics报道了这一点。

这是Google Analytics中的错误吗?

我必须创建自己的同步代码,以确保只从单个帖子调用Google Analytics吗?

Fatal Exception: java.util.ConcurrentModificationException
   at java.util.HashMap$HashIterator.nextEntry(HashMap.java:851)
   at java.util.HashMap$EntryIterator.next(HashMap.java:891)
   at java.util.HashMap$EntryIterator.next(HashMap.java:890)
   at com.google.android.gms.analytics.Tracker.zzb(Unknown Source)
   at com.google.android.gms.analytics.Tracker.send(Unknown Source)

1 个答案:

答案 0 :(得分:0)

我得到了一个解决方案,它是由于 Google Analytics 的发送事件而发生的。多个线程正在使用这种跟踪器对象的方法。

我们只需要将其同步为:

synchronized public Tracker getDefaultTracker() {
    // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG
    if (sTracker == null) {
      sTracker = sAnalytics.newTracker(R.xml.global_tracker);
    }

    return sTracker;
  }

有关更多详细信息,请查看以下链接: https://developers.google.com/analytics/devguides/collection/android/v4/

https://github.com/grazies/analytics-issues/issues/692