Ich versuche, den Beispielcode von Android 'Google Maps Android API v2' zum Laufen zu bringen. Ich bekomme das Projekt fehlerfrei aufgebaut. Wenn ich jedoch versuche, die App auf meinem Galaxy Nexus (verbunden mit USB an meinen Laptop) auszuführen, stürzt die App sofort ab.
Dies ist die Protokollierung:
Unable to resolve superclass of Lcom/example/mapdemo/BasicMapActivity; (66)
Link of class 'Lcom/example/mapdemo/BasicMapActivity;' failed
Could not find class 'com.example.mapdemo.BasicMapActivity', referenced from method com.example.mapdemo.MainActivity.<clinit>
VFY: unable to resolve const-class 108 (Lcom/example/mapdemo/BasicMapActivity;) in Lcom/example/mapdemo/MainActivity;
VFY: replacing opcode 0x1c at 0x000d
Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lcom/example/mapdemo/MainActivity;
Class init failed in newInstance call (Lcom/example/mapdemo/MainActivity;)
Shutting down VM
threadid=1: thread exiting with uncaught exception (group=0x41ac9930)
FATAL EXCEPTION: main
Java.lang.ExceptionInInitializerError
at Java.lang.Class.newInstanceImpl(Native Method)
at Java.lang.Class.newInstance(Class.Java:1319)
at Android.app.Instrumentation.newActivity(Instrumentation.Java:1054)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2097)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2230)
at Android.app.ActivityThread.access$600(ActivityThread.Java:141)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1234)
at Android.os.Handler.dispatchMessage(Handler.Java:99)
at Android.os.Looper.loop(Looper.Java:137)
at Android.app.ActivityThread.main(ActivityThread.Java:5039)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:511)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:793)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: Java.lang.NoClassDefFoundError: com.example.mapdemo.BasicMapActivity
at com.example.mapdemo.MainActivity.<clinit>(MainActivity.Java:97)
... 15 more
Hat jemand einen Tipp, wie man das löst oder was ich falsch mache?
Folgen Sie dem Bettlaken sehr, sehr sorgfältig:
https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw
Ich denke insbesondere, dass Sie Folgendes tun müssen:
Ich fand diesen zweiten Schritt notwendig, da ich beim Versuch, den Beispielcode zu verwenden, genau den gleichen Fehler wie Sie traf. Der erste Schritt war notwendig, um eine NoClassDefFoundError
in com.google.Android.gms.R$styleable
in meinem realen Projekt zu vermeiden.
Ich musste auch einen sauberen Build durchführen und die App vom Gerät deinstallieren (von einem früheren Testversuch), bevor der Beispielcode funktioniert hat.
Folgen Sie den Anweisungen des nächsten Beispielcodes von Google.
Überspringen Sie den Abschnitt "4" und folgen Sie den Anweisungen unten:
Kopieren Sie das google-play-services.jar-Formular:
"Android-SDK-Ordner\extras\google\google_play_services\libproject\google-play-services_lib\libs"
in den "libs" Ordner -> Rechtsklick auf dieses Jar in diesem Ordner -> Erstellungspfad -> Zum Erstellungspfad hinzufügen.
Kopieren Sie das Android-support-v4.jar-Formular:
"Android-SDK-Ordner\Extras\Android\Support\V4"
in den "libs" Ordner -> Rechtsklick auf dieses Jar in diesem Ordner -> Erstellungspfad -> Zum Erstellungspfad hinzufügen.
Wo "Android-sdk-Ordner" normalerweise so aussieht: "C:\Benutzer\Benutzername\Android-sdks"
Ich hatte das gleiche Problem. Ich habe folgendes getan, um das Problem zu beheben.
Die Reihenfolge, in der sie aufgelistet wurden, war "src" und dann "gen".
DANN "überprüfen" Sie jeden der aufgeführten Artikel
siehe: NoClassDefFoundError für Code in einer Java-Bibliothek unter Android
Dies geschieht aufgrund vieler Verwirrung beim Importieren von Projekten. Die Dokumente https://developers.google.com/maps/documentation/Android/intro#sample_code Sagen, dass Sie an keiner Stelle "Projekte in den Arbeitsbereich kopieren" und zum Abrufen der Beispiele auswählen sollten Laufen ist das, woran Sie sich halten müssen. Wählen Sie diese Option nicht für die Play-Services und Samples - lassen Sie sie dort, wo sie sind.
Nachdem Sie beide importiert haben, überprüfen Sie Folgendes:
Probieren Sie denselben Beispielcode im neuen Arbeitsbereich aus.
Sie können auch das Beispielkartenprojekt und das Google play services-lib-Projekt (/ extras/google_google_play_services/libproject/google-play-services_lib) kopieren und einfügen und in den neuen Arbeitsbereich einfügen.
Ich hatte das gleiche Problem und konnte es nicht lösen. Schließlich nahm ich den Ordner mit den Beispielprojekten von einem anderen Computer, kopierte ihn in meinen Ordner und lud das neue Projekt, das ich vom anderen Computer genommen hatte. Dann funktioniert alles gut. Ich habe versucht, das Problem durch einen Vergleich von zwei Beispielprojekten nachzuverfolgen, konnte dies jedoch nicht. Jedenfalls funktionieren die neuen Beispielprojekte, die ich von der anderen Maschine genommen habe, einwandfrei.
Ich hatte ein ähnliches Problem ... Die Datei 'import-summary.txt' hatte die Antwort ... In meinem Fall hatte ich das Eclipse-Projekt in einen Pfad mit einem Leerzeichen im Pfadnamen importiert. Dies verursacht ein Problem mit dem Assistenten Neuer Pfad erstellt. Projekt erneut importiert. Dann Build/Rebuild Project . Keine Probleme.