237 votes

Les bibliothèques ne sont plus ajoutées à l'APK après la mise à jour vers ADT 22

J'ai un projet d'application Android assez important qui fait référence à plusieurs projets de bibliothèque. Tout allait bien jusqu'à ce que je mette à jour le plugin ADT d'Eclipse avec la dernière version (v22). J'ai également mis à jour le SDK bien sûr. Je ne vois aucune erreur de compilation dans eclipse, mais lorsque je lance le projet sur le téléphone, j'obtiens un NoClassDefFoundError.

java.lang.NoClassDefFoundError: org.acra.ACRA
....

La bibliothèque arca est incluse dans l'un des projets de bibliothèque référencés (dans le dossier libs) et je peux la voir dans "Android Private Libraries" dans l'explorateur de paquets, et comme je l'ai dit, aucune erreur de compilation. Le projet fonctionne bien sur l'ordinateur de tous les autres utilisateurs qui n'ont pas mis à jour ADT.

J'ai déjà essayé tout un tas de choses, y compris mais sans s'y limiter :

  • réinstaller le SDK Android
  • télécharger un nouveau paquet ADT
  • supprimer tout mon code et le récupérer à partir de git
  • copier la bibliothèque en question dans le projet d'application
  • commentez le code qui utilise cette bibliothèque - j'obtiens la même erreur pour la bibliothèque suivante

sans succès, donc je suis vraiment désespéré.

Je serais très heureux si quelqu'un pouvait me donner un indice sur la façon de résoudre ce problème.

337voto

CommonsWare Points 402670

Citant les rues de Boston de son poste adt-dev :

Lors de la mise à jour, la commande et l'exportation des nouvelles bibliothèques privées Android n'est pas toujours correcte. Libraries' n'est pas toujours vérifié. Et le fichier Android-support-v4.jar se trouve maintenant dans cette section "Bibliothèques privées Android".

Pour résoudre ce problème, allez dans "Commander et exporter" et cochez "Android Private". Librairies'. Puis rafraîchissez/nettoyez/reconstruisez.

Après avoir effectué ce "correctif" pour un projet de bibliothèque, il se peut que vous deviez simplement fermer et rouvrir tous les projets dépendants, parce qu'ils peuvent ne pas voir cette "correction". immédiatement.

Faites un essai et avec un peu de chance, cela résoudra votre problème.

enter image description here

10voto

Zaixer Points 98

La simple vérification des bibliothèques privées d'Android n'était pas suffisante, j'ai également dû installer Build-tools du SDK Android dans Android SDK Manager.

4voto

laaptu Points 655

J'ai également eu le même problème et mon adt était 22.0.1 . Et aucune des solutions ci-dessus n'a fonctionné. De plus, lorsque j'ajoute un projet de bibliothèque externe à un projet en cours, je vérifie toujours l'emplacement de la bibliothèque. gen du projet de travail et si R du projet de bibliothèque externe est présent (avec le nom du paquet), alors seul le projet de bibliothèque externe est exporté. Et sur mon gen dossier non packagename de la bibliothèque externe a été montré.

J'ai donc vérifié sur project.properties et il n'y avait pas de lien vers une bibliothèque externe. android.library.reference.1= actuel. J'ai donc ajouté manuellement la référence de la bibliothèque externe à cet endroit, même si j'avais ajouté à partir de project->properties->Java Build Path->Projects->Add . Ainsi, l'édition manuelle du project.properties a fait tout le travail pour moi.

enter image description here

4voto

Sergey Points 58

J'ai rencontré un problème similaire, passé environ 3 heures, mais aucune des décisions proposées ici n'a aidé... J'ai finalement trouvé la source du problème : mes fichiers de projet et project.properties étaient en lecture seule. Eclipse ignore tout simplement silencieusement tout changement dans les dépendances de la bibliothèque lorsque je le fais dans l'interface graphique !

3voto

Pinhassi Points 4297

J'ai eu le même problème. C'était à cause du projet eclipse. Pour le résoudre, j'ai créé un nouveau projet dans eclipse, j'y ai copié les classes et les ressources de mon projet existant, puis j'ai relancé eclipse et ajouté mes includes personnalisés.

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