Ich habe ein ziemlich großes Android App-Projekt, das auf mehrere Bibliotheksprojekte verweist. Alles war in Ordnung, bis ich das Eclipse ADT-Plugin auf die neueste Version (v22) aktualisiert habe. Ich habe natürlich auch das SDK aktualisiert. Ich sehe keine Kompilierungsfehler in Eclipse, aber wenn ich das Projekt auf dem Telefon ausführe, erhalte ich einen NoClassDefFoundError.
java.lang.NoClassDefFoundError: org.acra.ACRA
....
Die Arca-Bibliothek ist in einem der referenzierten Bibliotheksprojekte (im libs-Ordner) enthalten und ich kann sie in den "Android Private Libraries" im Paket-Explorer sehen, auch wie gesagt, keine Kompilierungsfehler. Das Projekt läuft einwandfrei auf allen anderen Computern, die ADT nicht aktualisiert haben.
Ich habe bereits eine ganze Reihe von Dingen ausprobiert, einschließlich, aber nicht beschränkt auf:
- Installieren Sie das Android SDK erneut
- Laden Sie ein neues ADT-Bundle herunter
- lösche meinen ganzen Code und hol ihn dir wieder von git
- Kopieren Sie die betreffende Bibliothek in das App-Projekt
- Kommentieren Sie den Code aus, der diese Bibliothek verwendet - ich erhalte nur den gleichen Fehler für die nächste Bibliothek
alles ohne Erfolg, also werde ich hier wirklich verzweifelt.
Ich würde mich sehr freuen, wenn mir jemand einen Hinweis geben könnte, wie ich dieses Problem lösen kann.
libs/
, aber Sie können es auch auf alles überprüfen, falls Sielibs/
einige Monate später etwas hinzufügen und dies vergessen.Es reichte nicht aus, nur die privaten Bibliotheken von Android zu überprüfen. Außerdem musste ich die Android SDK Build-Tools im Android SDK Manager installieren .
quelle
Ich hatte auch das gleiche Problem und mein
adt
war22.0.1
. Und keine der oben genannten Lösungen hat funktioniert. Wenn Sie einem Arbeitsprojekt ein externes Bibliotheksprojekt hinzufügen, überprüfe ich immer dengen
Ordner des Arbeitsprojekts. Wenn einR
externes Bibliotheksprojekt vorhanden ist (zusammen mit dem Paketnamen), wird nur ein externes Bibliotheksprojekt exportiert. Und in meinemgen
Ordner wurde keinepackagename
externe Bibliothek angezeigt.Also habe ich die
project.properties
Datei überprüft und es war kein externer Bibliothekslinkandroid.library.reference.1=
vorhanden. Also habe ich dort manuell die externe Bibliotheksreferenz hinzugefügt, obwohl ich von hinzugefügt hatteproject->properties->Java Build Path->Projects->Add
. Das manuelle Bearbeiten hat also dieproject.properties
ganze Arbeit für mich erledigt.quelle
android.library.reference.n
ist , sondern -> -> -> -> . Ein Gotcha .java build path
project
properties
Android
Library
Add...
Ich bin auf ein ähnliches Problem gestoßen, habe ungefähr 3 Stunden verbracht, aber keine der hier vorgeschlagenen Entscheidungen hat nicht geholfen ... Schließlich habe ich eine Ursache für das Problem gefunden: Meine Projektdateien und project.properties waren schreibgeschützt. Eclipse ignoriert einfach stillschweigend alle Änderungen in den Bibliotheksabhängigkeiten, wenn ich dies in der GUI mache!
quelle
Ich hatte das gleiche Problem. Es war wegen des Eclipse-Projekts. Um dieses Problem zu lösen, habe ich ein neues Projekt in Eclipse erstellt, meine vorhandenen Projektklassen und Ressourcen in dieses Projekt kopiert, Eclipse erneut gestartet und meine benutzerdefinierten Includes hinzugefügt.
quelle
Ich hatte ein ähnliches Problem und meine Antwort unterscheidet sich geringfügig von der von CommonsWare. Hier ist mein Screenshot:
Nachdem ich die Bibliotheken in meinem Build überprüft hatte, fing ich wieder an zu arbeiten.
quelle
Android Dependencies
wurde durch ersetztAndroid Private Libraries
und ist möglicherweise nur aus alten Gründen noch vorhanden. Ich denke, es könnte jederzeit entfernt werden.Ich hatte auch das gleiche Problem,
i) Fügen Sie gson lib als Referenz-Librairies hinzu.
ii) Überprüfen Sie es in Java Build Path
quelle