Java me 启动应用程序时出错

Java me 启动应用程序时出错,java-me,lwuit,nokia-s40,Java Me,Lwuit,Nokia S40,有时,在我的应用程序的第一个屏幕中,会出现以下错误 java.lang.ArrayIndexOutOfBoundsException: 5 >= 5 at java.util.Vector.elementAt(Vector.java:427) at com.sun.lwuit.Container.getComponentAt(Container.java:844) at com.sun.lwuit.layouts.BoxLayout.getPreferredSize

有时,在我的应用程序的第一个屏幕中,会出现以下错误

java.lang.ArrayIndexOutOfBoundsException: 5 >= 5
    at java.util.Vector.elementAt(Vector.java:427)
    at com.sun.lwuit.Container.getComponentAt(Container.java:844)
    at com.sun.lwuit.layouts.BoxLayout.getPreferredSize(BoxLayout.java:133)
    at com.sun.lwuit.Container.calcPreferredSize(Container.java:1097)
    at com.sun.lwuit.Component.preferredSize(Component.java:1431)
    at com.sun.lwuit.Component.getPreferredSize(Component.java:473)
    at com.sun.lwuit.Component.getPreferredH(Component.java:553)
    at com.sun.lwuit.layouts.BoxLayout.layoutContainer(BoxLayout.java:84)
    at com.sun.lwuit.Container.doLayout(Container.java:813)
    at com.sun.lwuit.Container.layoutContainer(Container.java:805)
    at com.sun.lwuit.Container.doLayout(Container.java:818)
    at com.sun.lwuit.Form.sizeChangedInternal(+93)
    at com.sun.lwuit.Display.handleEvent(Display.java:1654)
    at com.sun.lwuit.Display.edtLoopImpl(Display.java:886)
    at com.sun.lwuit.Display.mainEDTLoop(Display.java:831)
    at com.sun.lwuit.RunnableWrapper.run(RunnableWrapper.java:119)
它对应用程序的其余部分没有影响,但是当这种情况发生时,它会出现一个对话框,里面有错误,我不想让它显示出来


如何避免此问题?

这是一个LWUIT4S40错误,堆栈非常清晰。我不能告诉你错误是什么,因为我不熟悉他们的代码,但冒昧地猜测,他们可能会弄乱标题组件或命令组件之类的东西,并从他们的本机线程中修改布局


由于您的代码都不在堆栈中,且堆栈位于EDT上,因此您应该处于清除状态,除非您是从单独的线程(例如start方法)修改UI。在Codename One中,使用内置设备很容易检测到这一点,但在这里,您只需检查所有代码或获得诺基亚的帮助即可。

您能为要显示的第一个屏幕显示代码吗?它似乎引用了容器中的一个额外项目或容器。