java.util.ConcurrentModificationException 在 activity onCreate 中
java.util.ConcurrentModificationException in activity onCreate
在我通过 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);
这是 RecentGameActivity 的第 70 行代码的样子
public class RecentGameActivity extends BaseActivity implements AdapterView.OnItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
将您的 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'
在我们的例子中,我们只看到
崩溃
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
我们已经确定了这个问题,并且正在为下一版本的 SDK 修复。
最终在17.2.3中修复:
https://firebase.google.com/support/release-notes/android#analytics_v17-2-3
我们最近遇到了类似的问题。 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 游戏控制台出错:
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.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
在我通过 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);
这是 RecentGameActivity 的第 70 行代码的样子
public class RecentGameActivity extends BaseActivity implements AdapterView.OnItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
将您的 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'
在我们的例子中,我们只看到
崩溃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
我们已经确定了这个问题,并且正在为下一版本的 SDK 修复。
最终在17.2.3中修复: https://firebase.google.com/support/release-notes/android#analytics_v17-2-3
我们最近遇到了类似的问题。 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 游戏控制台出错:
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.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