【问题标题】:ConcurrentModificationException - how to fix?ConcurrentModificationException - 如何修复?
【发布时间】:2018-12-09 10:44:50
【问题描述】:

有一个由激活容器组成的应用程序,其中替换了 2 个片段(列表和详细信息)。我从每 1000 个大约 0.5 个用户那里得到“RuntimeException Caused by: ConcurrentModificationException”。我自己无法捕捉到它。我使用:moxy、dagger、rx。

我知道在迭代期间修改集合时会发生此异常。但我不会那样做。

java.lang.RuntimeException: 
  at android.app.ActivityThread.performPauseActivityIfNeeded (ActivityThread.java:4179)
  at android.app.ActivityThread.performPauseActivity (ActivityThread.java:4145)
  at android.app.ActivityThread.performPauseActivity (ActivityThread.java:4119)
  at android.app.ActivityThread.handlePauseActivity (ActivityThread.java:4093)
  at android.app.ActivityThread.-wrap18 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1654)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6776)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1518)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1408)
Caused by: java.util.ConcurrentModificationException: 
  at i.put (i.java:101)
  at fo.a (fo.java:44)
  at fm.onActivityPaused (fm.java:53)
  at android.app.Application.dispatchActivityPaused (Application.java:249)
  at android.app.Activity.onPause (Activity.java:1678)
  at android.support.v4.app.FragmentActivity.onPause (FragmentActivity.java)
  at android.app.Activity.performPause (Activity.java:7158)
  at android.app.Instrumentation.callActivityOnPause (Instrumentation.java:1330)
  at android.app.ActivityThread.performPauseActivityIfNeeded (ActivityThread.java:4168)
  at android.app.ActivityThread.performPauseActivity (ActivityThread.java:4145)
  at android.app.ActivityThread.performPauseActivity (ActivityThread.java:4119)
  at android.app.ActivityThread.handlePauseActivity (ActivityThread.java:4093)
  at android.app.ActivityThread.-wrap18 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1654)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6776)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1518)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1408)

我认为这是一个例外:

  at i.put (i.java:101)
  at fo.a (fo.java:44)
  at fm.onActivityPaused (fm.java:53)

【问题讨论】:

  • 代码在哪里?如果不编写一些代码,我们如何为您提供帮助?
  • 应用不小。我无法显示所有代码。究竟是什么导致了这个异常,我不知道。

标签: android android-fragments android-lifecycle


【解决方案1】:

您正在使用 for 每个循环,同时您不能修改列表。使用基于 for (int i) 的循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 2010-10-24
    • 2013-11-12
    • 2020-09-07
    • 2022-01-24
    相关资源
    最近更新 更多