web-dev-qa-db-fra.com

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

J'ai un assez gros projet Android qui fait référence à plusieurs projets de bibliothèque. Tout allait bien jusqu'à ce que je mette à niveau le plugin Eclipse ADT vers la version la plus récente (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, je reçois un message 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 le voir dans les "Bibliothèques privées Android" de l'Explorateur de paquet. Aussi, comme je l'ai dit, aucune erreur de compilation. Le projet fonctionne correctement sur l'ordinateur de tous les autres ordinateurs qui n'ont pas mis à niveau ADT.

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

  • réinstallez le SDK Android
  • télécharger un nouveau paquet ADT
  • efface tout mon code et le récupère de git
  • copier la bibliothèque en question dans le projet d'application
  • commenter le code qui utilise cette bibliothèque - je viens d'obtenir la même erreur pour la prochaine bibliothèque

tout cela sans succès, alors je suis vraiment désespéré ici.

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

235
SimonSays

Citant Streets of Boston de son post adt-dev :

Lors de la mise à niveau, la "Commande et exportation" des nouvelles "Bibliothèques privées Android" n'est pas toujours cochée. Et Android-support-v4.jar est maintenant dans cette section "Bibliothèques privées Android".

Pour résoudre ce problème, allez à "Commander et exporter" et cochez la case "Bibliothèques privées Android". Puis actualiser/nettoyer/reconstruire.

Une fois que vous avez effectué ce "correctif" pour un projet de bibliothèque, vous devrez peut-être simplement fermer et rouvrir tout projet dépendant, car ils risquent de ne pas voir ce "correctif" immédiatement.

Donnez un coup de feu et avec de la chance cela résoudra votre problème.

enter image description here

337
CommonsWare

Vérifier simplement Android Bibliothèques privées ne suffisait pas, je devais également installer Android SDK Build-tools dans Android SDK Manager.

10
Zaixer

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

4
RedSoft

J'avais aussi le même problème et ma adt était 22.0.1. Et aucune des solutions ci-dessus n'a fonctionné. En outre, lors de l'ajout d'un projet de bibliothèque externe à un projet actif. Je vérifie toujours le dossier gen du projet actif et si R du projet de bibliothèque externe est présent (avec le nom du package), alors seul le projet de bibliothèque externe est exporté. Et sur mon dossier gen, aucun packagename de la bibliothèque externe n'a été affiché.

J'ai donc vérifié le fichier project.properties et il n'y avait aucun lien de bibliothèque externe présent Android.library.reference.1=. J'ai donc ajouté manuellement la référence de bibliothèque externe à cet endroit, même si j'avais ajouté à partir de project->properties->Java Build Path->Projects->Add. Donc, éditer manuellement le project.properties a fait tout le travail pour moi.

enter image description here

4
laaptu

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, y ai copié mes classes et ressources de projet existantes, puis lancé à nouveau Eclipse et ajouté mes inclus.

3
Asaf Pinhassi

J'ai eu le même problème et ma réponse est légèrement différente de celle de CommonsWare. Voici ma capture d'écran:

enter image description here

Après avoir vérifié les bibliothèques dans ma construction, j'ai recommencé à travailler.

2
Gilson

J'ai eu aussi le même problème,

i) ajouter gson lib en tant que librairies de référence
ii) vérifiez-le dans Java chemin de construction http://i.stack.imgur.com/Gldhs.png

0
Jeremy Piednoel