首页 文章

Codename One应用程序中的ConcurrentModificationException

提问于
浏览
1

在我的涉及(Android)Native接口实现的Codename One应用程序中,我不时在设备上收到一个ConcurrentModificationException堆栈跟踪读取:

W/System.err: java.util.ConcurrentModificationException
W/System.err:     at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
W/System.err:     at com.codename1.impl.android.AndroidAsyncView.flushGraphics(AndroidAsyncView.java:380)
W/System.err:     at com.codename1.impl.android.AndroidImplementation.flushGraphics(AndroidImplementation.java:1147)
W/System.err:     at com.codename1.impl.CodenameOneImplementation.paintDirty(CodenameOneImplementation.java:580)
W/System.err:     at com.codename1.ui.Display.edtLoopImpl(Display.java:1075)
W/System.err:     at com.codename1.ui.Display.mainEDTLoop(Display.java:997)
W/System.err:     at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
W/System.err:     at com.codename1.impl.CodenameOneThread$1.run(CodenameOneThread.java:60)
W/System.err:     at java.lang.Thread.run(Thread.java:841)

我的代码(Codename One part或本机接口实现)不使用 ArrayList ,当'Internal Error'弹出时单击OK后应用程序可以继续,但我宁愿避免此错误 .

我应该在哪里看看以防止发生此错误?

任何帮助非常感谢,

1 回答

  • 1

    这意味着代码在某个单独的线程上由于某种原因触发了本机重绘 . 与对等组件交互的本机代码是否使用Android本机UI线程执行此操作?

    如果不是,那可能会触发竞争条件 .

相关问题