活动 onCreate 中的 java.util.ConcurrentModificationException

mbu*_*rst 51 java android admob mopub

在最近的一个版本中,我通过 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)
Run Code Online (Sandbox Code Playgroud)

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

protected void onCreate(Bundle savedInstanceState) {
        supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
        super.onCreate(savedInstanceState);
Run Code Online (Sandbox Code Playgroud)

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

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

Pab*_*nez 25

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

com.google.firebase:firebase-analytics:17.2.2 
Run Code Online (Sandbox Code Playgroud)

恢复到 17.2.1 已解决问题

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


Jim*_*Jim 20

将您的 Firebase 核心库恢复为:

implementation 'com.google.firebase:firebase-core:17.1.0'
Run Code Online (Sandbox Code Playgroud)

我在 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'
Run Code Online (Sandbox Code Playgroud)

  • 在 Firebase 发行说明 (https://firebase.google.com/support/release-notes/android) 中,他们说用 firebase-analytics 或我们正在使用的库替换 firebase-core。您尝试过这个解决方案吗? (2认同)
  • 我猜除了标题之外,两者几乎相同。我们在从 com.google.firebase:firebase-analytics:17.1.0 升级到 17.2.2 时发现了该问题 (2认同)

小智 6

我们已经确定了该问题,并且正在为下一版本的 SDK 进行修复。

  • 17.2.3 修复了吗? (3认同)
  • @Qbit 它已修复在 17.2.3 上。https://firebase.google.com/support/release-notes/android#analytics_v17-2-3 (2认同)