2013-08-14 4 views
1

Иногда на первом экране моего приложения появляется следующая ошибка.Ошибка при запуске приложения

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) 

Это не имеет никакого влияния на остальной части приложения, но когда это произойдет, то появится диалоговое окно с сообщением об ошибке внутри, и я не хочу, чтобы это показать.

Как я могу избежать этого?

+0

Можете ли вы показать код для отображения первого экрана? Похоже, что это ссылка на дополнительный элемент или контейнер внутри контейнера. –

ответ

2

Это ошибка LWUIT4S40, стек довольно понятный. Я не могу сказать вам, что это за ошибка, потому что я не знаком с их кодом, но, предположим, я бы сказал, что они, вероятно, возились с вещами, такими как компонент заголовка или командные компоненты и мутируя макет из своего родного потока.

Поскольку ни один из ваших кодов не находится в стеке, а стек находится на EDT, вы должны быть в ясном состоянии, если вы хотите изменить пользовательский интерфейс из отдельного потока (например, метода запуска). В Codename One это довольно легко обнаружить со встроенным EDT violation detector, но здесь вам просто нужно будет проверить весь свой код или получить помощь от Nokia.

Смежные вопросы