【问题标题】:java.util.ConcurrentModificationException in activity onCreate活动 onCreate 中的 java.util.ConcurrentModificationException
【发布时间】:2020-05-11 22:49:30
【问题描述】:

在最近的一个版本中,我通过 Admob 广告中介添加了 MoPub,我在崩溃日志中看到了一堆 ConcurrentModificationException。这一切似乎都是本机代码,我使用的是所有广告相关和 google/android 相关库的最新版本。以前有人遇到过吗?

java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3121)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3264)
  at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78)
  at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:108)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:68)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1955)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:214)
  at android.app.ActivityThread.main (ActivityThread.java:7078)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:964)
Caused by: java.util.ConcurrentModificationException: 
  at androidx.c.g.put (SimpleArrayMap.java:482)
  at com.google.android.gms.measurement.internal.hs.a
  at com.google.android.gms.measurement.internal.hi.onActivityCreated
  at android.app.Application.dispatchActivityCreated (Application.java:245)
  at android.app.Activity.onCreate (Activity.java:1108)
  at androidx.core.app.e.onCreate (ComponentActivity.java:81)
  at androidx.activity.b.onCreate (ComponentActivity.java:149)
  at androidx.fragment.app.c.onCreate (FragmentActivity.java:313)
  at androidx.appcompat.app.e.onCreate (AppCompatActivity.java:106)
  at com.teamtol.livedota.BaseActivity.onCreate (BaseActivity.java:21)
  at com.teamtol.livedota.RecentGameActivity.onCreate (RecentGameActivity.java:70)
  at android.app.Activity.performCreate (Activity.java:7327)
  at android.app.Activity.performCreate (Activity.java:7318)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1275)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3101)

这是直到 BaseActivity 第 21 行代码的样子:

protected void onCreate(Bundle savedInstanceState) {
        supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
        super.onCreate(savedInstanceState);

这是最近游戏活动第 70 行代码的样子

public class RecentGameActivity extends BaseActivity implements AdapterView.OnItemSelectedListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

【问题讨论】:

  • 我们在 Android 9 之前的几部手机上发现了同样的问题。您使用 Firebase Analytics 吗?如果是,是哪个版本?
  • 升级依赖后遇到同样的问题。
  • @Farasy 是的,我在 Android 9 上也看到了很多,虽然在其他版本上也有一些用户。我正在使用 Firebase Analytics com.google.firebase:firebase-core:17.2.2
  • 任何人有想法或方案来产生这个崩溃?

标签: java android admob mopub


【解决方案1】:

在我们的例子中,我们只看到

的崩溃
com.google.firebase:firebase-analytics:17.2.2 

恢复到 17.2.1 已解决问题

如果您使用的是 firebase-core:17.2.2,也会发生这种情况,因为 firebase-analytics 是重新命名的同一个库。考虑到根据官方文档,目前不推荐使用 firebase-core -> https://firebase.google.com/support/release-notes/android#latest_sdk_versions

【讨论】:

  • 将 firebase-analytics 恢复到 17.2.1 解决了我们的问题。谢谢!
  • 将 firebase-analytics 恢复到 17.2.1 并没有为我们解决问题。我们使用17.2.1 有一段时间了,并没有看到这些崩溃。我怀疑崩溃是否与firebase-analytics 库有关。
  • 感谢您的提醒。我刚刚发布了一个 17.2.1 的版本。一旦用户有时间就会更新
  • 更正:我们将 firebase-analytics 恢复到 17.2.1,但 firebase-core 在 17.2.2 保持不变,并且仍然收到崩溃。然后我们发布了一个核心版本也恢复到 17.2.1 并且到目前为止没有崩溃。 (我不确定是否仍然需要 firebase-core?)
  • @PabloA.Martínez 很好,自从恢复了核心库和分析库后,我们在 17.2.1 上没有看到任何崩溃。您是否碰巧知道哪个版本的核心已被弃用?我找不到那个参考。
【解决方案2】:

将您的 Firebase 核心库恢复为:

implementation 'com.google.firebase:firebase-core:17.1.0'

我在 v17.2.1 和 v17.2.2 上都看到过这种崩溃,但自从恢复到 17.1.0 后一切都很好。

我在这里报告了这个错误:https://firebase.google.com/support/troubleshooter/report/bugs

更新

感谢@Sébastien,恢复到 v17.2.0 也应该可以:

implementation 'com.google.firebase:firebase-core:17.2.0'

【讨论】:

  • 在 Firebase 发行说明 (firebase.google.com/support/release-notes/android) 中,他们说用 firebase-analytics 或我们正在使用的库替换 firebase-core。你试过这个解决方案吗?
  • 我猜两者几乎相同,除了标题。我们在从 com.google.firebase:firebase-analytics:17.1.0 升级到 17.2.2 时发现了这个问题
  • @Farasy 感谢您的回复,我将恢复依赖:|
  • 谢谢@Jim。请随时通知我们。看来com.google.firebase:firebase-core:17.2.0 也免了这个bug。
  • 版本 17.2.1 也可以工作,我们没有观察到该版本的崩溃,只是在升级到 17.2.2 之后。
【解决方案3】:

【讨论】:

  • 是的,我也修好了!
【解决方案4】:

我们已经发现了这个问题,并且正在努力为 SDK 的下一版本修复。

【讨论】:

  • 我们面临同样的问题。请告知我们解决此问题的进展情况。
  • 17.2.3 修复了吗?
  • @Qbit 它固定在 17.2.3 上。 firebase.google.com/support/release-notes/…
  • 在 'com.google.firebase:firebase-analytics:17.4.0' 上再次发现此问题。
  • John - 你有这个事件的堆栈跟踪吗?
【解决方案5】:

我们最近遇到了类似的问题。 Admob 中介的 Unity Ads 适配器出错。

这是我们的 build.gradle 文件:

implementation 'com.google.android.gms:play-services-ads:19.1.0'
implementation 'com.google.ads.mediation:unity:3.4.2.1'
implementation 'com.google.ads.mediation:vungle:6.5.3.0'
implementation 'com.google.ads.mediation:chartboost:7.5.0.0'
implementation 'com.google.ads.mediation:mytarget:5.6.3.0'
implementation 'com.yandex.android:mobmetricalib:3.13.1'
implementation 'com.yandex.android:mobileads:2.142'
implementation 'com.yandex.ads.adapter:admob-mobileads:0.3.0'

implementation 'com.google.android.gms:play-services-games:19.0.0'
implementation 'com.google.android.gms:play-services-auth:17.0.0'

implementation 'com.google.firebase:firebase-analytics:17.3.0'
implementation 'com.google.firebase:firebase-dynamic-links:19.1.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'

implementation 'com.google.android.play:core:1.7.2'
implementation 'androidx.multidex:multidex:2.0.1'

Google Play 控制台出错:

java.util.ConcurrentModificationException: 
  at java.util.HashMap$HashIterator.nextNode (HashMap.java:1453)
  at java.util.HashMap$EntryIterator.next (HashMap.java:1487)
  at java.util.HashMap$EntryIterator.next (HashMap.java:1485)
  at com.google.ads.mediation.unity.UnitySingleton$UnitySingletonListener.onUnityAdsError (UnitySingleton.java:227)
  at com.unity3d.services.ads.configuration.AdsModuleConfiguration$3.run (AdsModuleConfiguration.java:92)
  at android.os.Handler.handleCallback (Handler.java:888)
  at android.os.Handler.dispatchMessage (Handler.java:100)
  at android.os.Looper.loop (Looper.java:213)
  at android.app.ActivityThread.main (ActivityThread.java:8178)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:513)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1101)

这个问题又和firebase有关吗?

更新

这次的问题似乎出在 UnityAds 适配器上: https://developers.google.com/admob/android/mediation/unity#version-3.4.2.2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多