J'écris une application Android, et il y a un tableau que je scanne à quelques endroits. Pour une raison quelconque, il se bloque parfois dans l'un de ces endroits avec une exception ArrayIndexOutOfBoundsException. Quand je le débogue, les indices au moment des crashs sont toujours parfaitement raisonnables et dans les limites du tableau (bien que différents indices à chaque fois). Plus agaçante, je ne peux pas regarder le contenu du tableau, car chaque fois que je fais défiler les variables, le débogueur se déconnecte juste avant que j'arrive au tableau. Je place le tableau dans un tableau que je crée dans une fonction C et retourne (en utilisant le NDK Android et cetera) et ma meilleure estimation est que parfois le tableau que je reçois est sérieusement foiré, mais ça fonctionne très bien le plus souvent , et quand il plante, il ne plante généralement pas sur l'index 0, donc tout ce que je reçois du code C doit dans ces cas fonctionner assez bien pour être lu par certains. L'information potentiellement pertinente est aussi que si j'arrête l'application quand elle n'a pas planté, le débogueur n'a aucun problème à regarder le tableau.Bizarre ArrayIndexOutOfBoundsException
Répondre
Chaque fois que les choses deviennent vraiment étranges (comme quand i
et j
sont « s et après j = i * i
int
j
a une valeur de 35), je cherche un problème multi-threading. (J'ai vu des problèmes similaires avec un processeur qui exécute des opérations dans le désordre, pas de threads multiples, mais il pourrait tout aussi bien l'être.) Obtenez votre référence de tableau dans une variable locale et travaillez avec cela. D'autres threads peuvent ensuite modifier les valeurs dans le tableau, mais ils ne peuvent pas changer sa longueur. Ensuite, vous voudrez peut-être jeter un coup d'œil sur les threads que vous avez en cours d'exécution, ce qu'ils font, et ce que vous faites pour les empêcher de déchiqueter vos données.
En outre: votre débogueur ne peut pas arrêter tous vos threads lorsqu'il rencontre l'exception. (Il y a probablement une option pour ceci quelque part.) Le fil coupable peut alors enlever toute la preuve et s'échapper au-dessus de la frontière au moment où vous jetez un coup d'oeil aux choses.
- 1. besoin de déboguer ArrayIndexOutOfBoundsException bizarre
- 2. ArrayIndexOutOfBoundsException
- 3. callablestatement - ArrayIndexOutOfBoundsException
- 4. Java: ArrayIndexOutofBoundsException
- 5. MessageDigest ArrayIndexOutOfBoundsException
- 6. Android ArrayIndexOutOfBoundsException
- 7. Got ArrayIndexOutOfBoundsException
- 8. ArrayAdapter et ListView - ArrayIndexOutOfBoundsException
- 9. Immutable.listCopyfOf jette ArrayIndexOutOfBoundsException
- 10. Comment résoudre ArrayIndexOutofBoundsException
- 11. BouncyCastle GCM/CCM ArrayIndexOutOfBoundsException
- 12. ArrayIndexOutOfBoundsException dans l'application DatagramPacket
- 13. ArrayIndexOutOfBoundsException dans PhotoView + ViewPager
- 14. ArrayIndexOutOfBoundsException Tableau de ArrayLists
- 15. Comment éviter ArrayIndexOutOfBoundsException?
- 16. Comment lancer ArrayIndexOutOfBoundsException?
- 17. Java Swing: Jtable ArrayIndexOutOfBoundsException
- 18. Exception personnalisée pour ArrayIndexOutOfBoundsException
- 19. Java Applet - ArrayIndexOutOfBoundsException
- 20. ArrayIndexOutOfBoundsException dans Android
- 21. Problème avec ArrayIndexOutOfBoundsException
- 22. Android parse String ArrayIndexOutOfBoundsException
- 23. JTabbedPane FlowLayout throws ArrayIndexOutOfBoundsException
- 24. tableaux java: 90 (ArrayIndexOutOfBoundsException)
- 25. Arrayindexoutofboundsexception ArrayList customListView
- 26. ArrayIndexOutOfBoundsException lors du tri JTable
- 27. ArrayIndexOutOfBoundsException écrit dans le fichier
- 28. Java Applet - ArrayIndexOutOfBoundsException (pt 2)
- 29. ArrayIndexOutOfBoundsException avec SimplecursorAdapter et ListView
- 30. ArrayIndexOutOfBoundsException dans la bibliothèque Paypal
pouvez-vous inclure du code? Logcat? – IamAlexAlright
Quel est le type de la matrice? –
Il me semble qu'il y a un bogue dans votre code natif qui entraîne la corruption du tableau d'une manière ou d'une autre. Cela peut être suffisant pour planter le débogueur. –