2012-03-26 12 views
55

Ich habe ein Android-Projekt in Eclipse-IDE, die funktionierte. Nach einigen Importen und Tests erhalte ich den Fehler: java.lang.NoClassDefFoundError.Android java.lang.NoClassDefFoundError

In meinem Projekt habe ich zwei Pakete: das Haupt und das zweite mit einigen Klassen.

Wenn ich versuche, ein Objekt aus der zweiten Paketklasse in der Hauptaktivitätsklasse zu instanziieren, erhalte ich diesen Fehler. Hier

ist die logcat:

FATAL EXCEPTION: main 
java.lang.NoClassDefFoundError: com.neurospeech.wsclient.MDPIforEditorialBoard 
at milos.mdpi.Journals.<init>(Journals.java:41) 
at java.lang.Class.newInstanceImpl(Native Method) 
at java.lang.Class.newInstance(Class.java:1409) 
at android.app.Instrumentation.newActivity(Instrumentation.java:1040) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1777) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893) 
at android.app.ActivityThread.access$1500(ActivityThread.java:135) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:150) 
at android.app.ActivityThread.main(ActivityThread.java:4389) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) 
at dalvik.system.NativeStart.main(Native Method) 

die Lösung für mein Problem gefunden:

Die Lösung finden Sie hier: http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

+5

Haben Sie Ihr Android SDK auf 17 aktualisiert? – pleerock

+0

Ja @Pleerock, die Antwort von Minsky löste das Problem. Vielen Dank. –

+0

Überprüfen Sie diese Fragen und Antworten. Arbeitete für mich! http://stackoverflow.com/questions/16641739/android-error-caused-by-java-lang-noclassdeffounderror-android-support-v4-ut – MSquare

Antwort

55

Haben Sie kürzlich Ihre Eclipse Android-Plugin aktualisiert (adt r17)? Dann könnte der folgende Link helfen:

How to fix the classdefnotfounderror with adt-17

Update: Ein Jahr ist vergangen, seit sich die Frage. Ich werde den Link behalten, denn auch 2013 scheint es einigen Leuten zu helfen, das Problem zu lösen. Aber passen Sie bitte auf, was Sie tun, sehen Sie unten Erics Kommentar. Aktuelle ADT-Version ist 22, ich empfehle die Verwendung der aktuellsten Version.

+0

Großartig, das löste mein Problem, vielen Dank. –

+1

Das funktionierte auch für mich, aber ich musste das Projektziel vorübergehend wechseln (von 2.2 -> 4.0.3 in meinem Fall), um es in Kraft treten zu lassen. Möglicherweise war dies, weil meine Bibliotheken bereits in einem Verzeichnis namens "libs" gespeichert wurden. –

+2

WARNING, Dieser Link sagt, um alles auf Ihrer Registerkarte Bibliotheken loszuwerden, wenn Sie diese Anweisungen befolgen und Ihren virtuellen Ordner "Android Dependencies" loswerden muss ein neues Projekt erstellen und dein Programm von Grund auf neu erstellen, um es zurück zu bekommen. –

17

Ich reparierte das Problem, indem nur Privatbibliotheken des Hauptprojektes Hinzufügen von hier zu exportieren:

Project Properties->Java Build Path->Order And Export 

Und stellen Sie sicher, dass Android private Bibliotheken geprüft werden.

Screenshot:

enter image description here

Stellen Sie sicher, google-play-services_lib.jar und google-play-services.jar geprüft werden. Bereinigen Sie das Projekt und führen Sie es erneut aus, und die classNotfound-Ausnahme verschwindet.

+0

, dass es für mich behoben. Vielen Dank. FYI, dies geschah nach dem Verwerfen von Änderungen, die an der .classpath-Datei des Projekts über GIT vorgenommen wurden, und das erneute Auswählen von "Android Private Properties" fügt diese beiden zusätzlichen Zeilen wieder zu .classpath hinzu. – Erwan

+0

Das funktioniert für mich. Vielen Dank. – adrian4aes

1

Imaage

zur Bestellung und Export von Projekteigenschaften und stellen Sie sicher, dass Sie die erforderlichen Gläser in dem Export sind darunter, das hat es für mich

27

Bearbeiten des Build-Pfad in dieser Reihenfolge, das funktionierte für mich.

Sicherstellen, dass die /gen vor ist /src

enter image description here

+0

Immer wenn ich/gen vor/src setze, verschlingt Eclipse die gesamte Erinnerung und friert meinen Computer ein – sma

1

Ich habe ein paar Mal öffnen alte Projekte in dieses Problem, die anderen Android-Bibliotheken enthalten. Was für mich funktioniert, ist:

bewegen Android nach oben in der Bestellen und Exportieren Registerkarte und Abwahl es.

Ja, das macht wirklich den Unterschied. Vielleicht ist es Zeit für mich, ADT für Android Studio zu entfernen!

1

Sie können diesen Fehler auch erhalten, wenn Sie versuchen, ein Jar, das mit jdk 1.7 statt 1.6 kompiliert wurde, zu integrieren.

In meinem Fall dachte ich dies aus, indem durch das SDK versucht, meine app mit den Ant-Skripten zu verpacken, statt ADT, und ich bemerkte, diese Fehler, die ADT mich nicht zeigen:

[dex] Pre-Dexing libjingle_peerconnection.jar -> libjingle_peerconnection-2f82c9bf868a6c58eaf2c3b2fe6a09f3.jar 
    [dx] 
    [dx] trouble processing: 
    [dx] bad class file magic (cafebabe) or version (0033.0000) 
    [dx] ...while parsing org/webrtc/StatsReport$Value.class 
    [dx] ...while processing org/webrtc/StatsReport$Value.class 

Ich habe mein Glas mit jdk 1.6 neu kompiliert und der Fehler wurde behoben.

1

Versuchen Sie gehen zu Project -> Properties -> Java Build Path -> Order & Export Und bestätigt Android private Bibliotheken sind für Ihr Projekt und für alle anderen Bibliotheksprojekte überprüfen Sie in Ihrer Anwendung verwenden.

0

Nachdem Sie den Java-Erstellungspfad überprüft haben, fügen Sie Codezeilen in der Manifestdatei hinzu.

<meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 
Verwandte Themen