2013-08-14 1 views
1

Parfois, dans le premier écran de mon application, apparaît l'erreur suivante.Erreur au démarrage de l'application

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) 

Il n'a pas d'effet sur le reste de l'application, mais lorsque cela se produit, il apparaît une boîte de dialogue avec l'erreur à l'intérieur, et je ne veux pas montrer.

Comment puis-je éviter cela?

+0

Pouvez-vous afficher le code du 1er écran à afficher? On dirait qu'il s'agit d'un article ou d'un conteneur supplémentaire à l'intérieur d'un conteneur. –

Répondre

2

Ceci est un bug LWUIT4S40, la pile est assez claire. Je ne peux pas vous dire quel est le bogue parce que je ne connais pas leur code, mais je devrais dire qu'ils jouent probablement avec des choses comme le composant de titre ou les composants de la commande et la mutation de leur thread natif.

Puisqu'aucun de votre code n'est dans la pile et que la pile est sur l'EDT, vous devriez être en clair, SAUF si vous modifiez l'UI à partir d'un thread séparé (par exemple la méthode start). Dans Codename One, il est assez facile à détecter avec le EDT violation detector intégré, mais ici, vous devez simplement inspecter tout votre code ou obtenir l'aide de Nokia.