ConcurrentModificationException - как исправить? - PullRequest
0 голосов
/ 09 декабря 2018

Существует приложение, состоящее из контейнера активации, в котором заменены 2 фрагмента (список и детали).Я получаю "RuntimeException Причина: ConcurrentModificationException" от примерно 0,5 пользователя на 1000. Я не могу поймать его сам.Я использую: 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)

1 Ответ

0 голосов
/ 09 декабря 2018

Вы используете для каждого цикла и в то же время вы не можете изменить список.Используйте для цикла (int i).

...