webentwicklung-frage-antwort-db.com.de

Gson NoClassDefFoundError nach der Aktualisierung der ADT- und SDK-Tools auf Version 17

Heute habe ich meine ADT- und SDK-Tools auf Version 17 und meine Projekte mit der Google Gson-Jar-Bibliothek von Google aktualisiert. Jetzt wurde NoClassDefFoundError ..__ ausgegeben. Hier ist die Logcat-Ausgabe:

> 03-22 12:30:58.941: E/AndroidRuntime(21672): FATAL EXCEPTION: main
> 03-22 12:30:58.941: E/AndroidRuntime(21672):
> Java.lang.NoClassDefFoundError: com.google.gson.Gson 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.conn.XRequestHandler.connect(XRequestHandler.Java:35)
> 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.conn.XRequestHandler.makeRequest(XRequestHandler.Java:
> 29) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.bavul.XBaseWithConnectionActivity.makeRequest(XBaseWithConnectionActivity.Java:
> 46) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.ui.login.SplashScreenActivity.onCreate(SplashScreenActivity.Java:
> 36) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.Activity.performCreate(Activity.Java:4465) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:
> 1049) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:
> 1919) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:
> 1980) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.ActivityThread.access$600(ActivityThread.Java:122) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1146)
> 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.os.Handler.dispatchMessage(Handler.Java:99) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.os.Looper.loop(Looper.Java:137) 03-22 12:30:58.941:
> E/AndroidRuntime(21672):    at
> Android.app.ActivityThread.main(ActivityThread.Java:4340) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> Java.lang.reflect.Method.invokeNative(Native Method) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> Java.lang.reflect.Method.invoke(Method.Java:511) 03-22 12:30:58.941:
> E/AndroidRuntime(21672):    at com.Android.internal.os.ZygoteInit
> $MethodAndArgsCaller.run(ZygoteInit.Java:784) 03-22 12:30:58.941:
> E/AndroidRuntime(21672):    at
> com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:551) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> dalvik.system.NativeStart.main(Native Method)

irgendwelche Ideen?

43
Yasin YILDIRIM

Ich hatte heute ein ähnliches Problem.

Das hat es für mich behoben:

  • Entfernen Sie alle Android Library-Projekte und externen Glieder aus dem Erstellungspfad. 
  • Erstellen Sie in Ihrem Projekt einen Ordner mit dem Namen 'libs'.
  • Platzieren Sie alle externen .jars in diesem Ordner. Der ADT sollte sie jetzt unter "Android-Abhängigkeiten" ablegen.
  • Importieren Sie alle Ihre bisherigen Android Library-Projekte wie gewohnt.

Das Problem ist, dass bei Verwendung von Eigenschaften - Java Build Path - External Jar nicht standardmäßig externe Jars im Ordner 'libs' abgelegt werden. Stattdessen werden sie unter 'Referenzierte Bibliotheken' anstelle von 'Android-Abhängigkeiten' platziert. Dies führt zu NoClassDefFoundError.

Bitte überprüfen Sie Umgang mit Abhängigkeiten in Android-Projekten für weitere Details.

77
Freddroid
  1. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Eigenschaften
  2. Gehen Sie zu Java Build Path-Order und Export.
  3. Tick ​​"Android Private Libraries"
  4. Klicken Sie auf Projekt, Reinigen
13
Natt

Für SDK-Tools 17 müssen Sie den Ordner Ihres Bibliotheksprojekts von "lib" in "libs" umbenennen, wie vorgeschlagen here . Schauen Sie sich auch this an. 

10
Eleni

Diese Site hat die einfachste Lösung, die für mich funktioniert hat. Aktivieren Sie das Kontrollkästchen der Bibliothek unter "Bestellen und Exportieren".

http://Android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

5
Georgie

Ich habe in meinem Blog einen kurzen Beitrag erstellt, in dem erklärt wird, wie diese Probleme behoben werden können. Es hat mit Bibliotheken zu tun und eine Änderung, die sie daran vorgenommen haben, wie Eclipse Bibliotheken jetzt verwaltet. Sie können es hier überprüfen, wenn Sie möchten: http://xrigau.wordpress.com/2012/03/22/fix-some-problems-with-libraries-in-the-adt-17-plugin-10/

2
Xavi Rigau

Bestellung prüfen und auswählen 

Project->Properties->Java build path->Order and Export:

Bestellen und auswählen:

select Google APIs (optional)
select Dependencies
select Android Private Libraries
[-] src
[-] gen

Und in den Tab-Bibliotheken:

Abhängigkeiten Private Bibliotheken (Jars im 'libs'-Verzeichnis) Andere

Arbeitete für mich!

2
Hpsaturn

Dies ist ein offizieller Link, der von Android-Entwicklern bei Google zur Verfügung gestellt wird. Gehen Sie den Artikel durch, wenn Sie nach der Aktualisierung des Plugins und/oder des SDK mit NoClassDefFoundException konfrontiert sind

https://plus.google.com/115995639636688350464/posts/38o8ZA6xQK4

0
JaydeepW

Überprüfen Sie Ihre Gson-Bibliothek im Erstellungspfad. vielleicht ist die gson-bibliothek nicht zugänglich.

0
Artemis

Ich verwende GSON in einem Bibliotheksprojekt. Um dieses Problem über das Hinzufügen der GSON-Dose im Buildpfad hinaus zu lösen, musste ich es in meinem Bibliotheksprojektmanifest wie folgt deklarieren:

<uses-library Android:name="com.google.gson" />
0
ademar111190

laden Sie das GSON-Glas herunter und erstellen Sie es als Klassenpfad

0
Srikanth