Как узнать, где происходит это ConcurrentModificationException?

1

Я застрял с ConcurrentModificationException и я не могу понять, где это происходит в моем коде. Все, что дает мне Debug, это:

myApp [Android Application] 
DalvikVM[localhost:8631]    
    Thread [<1> main] (Suspended (exception ConcurrentModificationException))   
        ViewRoot.draw(boolean) line: 1631   
        ViewRoot.performTraversals() line: 1329 
        ViewRoot.handleMessage(Message) line: 1944  
        ViewRoot(Handler).dispatchMessage(Message) line: 99 
        Looper.loop() line: 126 
        ActivityThread.main(String[]) line: 3997    
        Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
        Method.invoke(Object, Object...) line: 491  
        ZygoteInit$MethodAndArgsCaller.run() line: 841  
        ZygoteInit.main(String[]) line: 599 
        NativeStart.main(String[]) line: not available [native method]  
    Thread [<8> Binder Thread #2] (Running) 
    Thread [<7> Binder Thread #1] (Running) 
    Thread [<9> AsyncTask #1] (Running) 
    Thread [<10> AsyncTask #2] (Running)    
    Daemon Thread [<12> [email protected]@40770068] (Running)  
    Thread [<11> AsyncTask #3] (Running)    
  • 0
    Вы должны получить полную трассировку стека в вашем logcat. Либо используйте Window -> Show View -> Logcat в eclipse, либо запустите приложение ddms из папки SDK. После сбоя должен быть большой красный блок с тегом AndroidRuntime .
  • 0
    Единственное, что показывает Logcat - это DEBUG / AndroidRuntime (899): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<< Нет бигредов ...
Показать ещё 2 комментария
Теги:

1 ответ

0
Лучший ответ

ConcurrentModificationException возникает, когда вы изменяете коллекцию, итерации по ней. На данный момент, возможно, проще просто искать цикл foreach, в котором вы меняете коллекцию.

  • 0
    Я делаю из map.getOverlays (). Add (...); в разных местах. Поможет ли блокировка / разблокировка?
  • 0
    @michaelsmith: если он внутри foreach, блокировки не помогут, потому что вы не модифицируете его из разных потоков.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню