3 votes

INSTALL_FAILED_DEXOPT détruit définitivement un projet ?

J'ai obtenu cette erreur en essayant d'installer et de tester une construction Android à partir d'eclipse :

Erreur d'installation : INSTALL_FAILED_DEXOPT

Et logcat révèle ceci :

07-02 21:49:44.924 : E/dalvikvm(863) : Descripteur de type non valide : 'Lcom/mypackagename/MyClass;'.

Je supprime donc la classe incriminée et commente la référence à celle-ci. Ensuite, il se construit et s'installe sans problème.

Maintenant ce nom de classe est à jamais maudit dans ce projet. Même si je crée une sous-classe triviale de java.lang.Object et que je lui donne ce nom de classe, l'erreur refait surface.

Nettoyer et redémarrer l'émulateur n'aide pas. Nettoyer le projet et redémarrer eclipse n'aide pas.

Comment les choses ont-elles pu dégénérer à ce point, et que puis-je faire pour y remédier ?

2voto

Dave Morgan Points 429

J'ai eu de la chance et j'ai trouvé ça. Si je n'avais pas regardé par hasard dans bin/classes, je n'aurais jamais réussi à le faire.

J'ai regardé le fichier de classe généré dans bin/classes et j'ai remarqué que le nom du fichier contenait un " ?". D'une manière ou d'une autre, lorsque j'ai créé la classe, un caractère invalide (dans ce cas 0x10) s'est retrouvé au milieu du nom. (Supposons que je l'ai fait avec un gros doigt en le tapant, ce qui est l'explication la plus probable).

La raison pour laquelle le problème s'est produit lorsque j'ai créé la classe fictive est que je collais l'ancien nom corrompu (c'était un nom de classe assez long).

Tout ce que j'ai eu à faire pour le corriger était de refactor>rename et de taper le nom manuellement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X