简体   繁体   English

Google Analytics 中的并发修改异常

[英]Concurrent Modification Exception in Google Analytics

I'm using Google Analytics for an Android app.我正在将 Google Analytics 用于 Android 应用程序。 The code usually works fine.代码通常工作正常。 However in production, the Google Analytics code fails occasionally with a ConcrruentModificationException.但是,在生产中,Google Analytics 代码偶尔会失败并出现 ConcrruentModificationException。 Crashlytics is reporting that. Crashlytics 报告了这一点。

Is that a bug in Google Analytics?这是 Google Analytics 中的错误吗?

Must I create my own synchronization code to make sure that Google Analytics is only called from a single thread?我是否必须创建自己的同步代码以确保仅从单个线程调用 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)

I got a solution, It's happening due to send event of Google Analytics.我得到了一个解决方案,它是由于 Google Analytics 的发送事件而发生的。 Multiple threads are using this method of tracker object.多个线程正在使用这种跟踪器对象的方法。

We just need to make it synchronized as:我们只需要将其同步为:

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;
  }

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

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

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

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