I'm trying to get the sample code of Android 'Google Maps Android API v2' working. I get the project built without errors. However, when I try to run the app on my Galaxy Nexus (connected with usb to my laptop), the app crashes immediately.
- I filled in my own Maps API Key at the AndroidManifest.xml
- I built against Android 4.1.2
This is the logging:
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
Does anybody have a hint how to solve this or what I might be doing wrong?
I had much the same problem. The file 'import-summary.txt' had the answer. In my case I had imported the eclipse project into a path with a space in the pathname. This causes a problem with the wizard. Created new path. Re-imported project. Then Build/Rebuild Project. No problems.
This happens because of a lot of confusion over how to import projects. The docs https://developers.google.com/maps/documentation/android/intro#sample_code say you should not select "Copy projects into workspace" at any point and for getting the samples running this is what you need to stick to. Do not select this option for the play services and samples - leave them where they are.
After you import both check the following:
Follow the crib sheet very, very carefully:
https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw
In particular, I think you need to:
I found this second step was necessary as I was hitting the exact same error as you when trying to use the sample code. The first step was necessary to avoid a
NoClassDefFoundError
incom.google.android.gms.R$styleable
in my real project.I also needed to do a Clean build and Uninstall the app from the device (from an earlier test attempt) before the sample code worked.
Follow next sample code instructions by google.
Skip on "4" section, and follow below instructions:
Copy google-play-services.jar form:
"android-sdk-folder\extras\google\google_play_services\libproject\google-play-services_lib\libs"
to "libs" folder --> right click on this jar in this folder --> Build path --> Add to build path.
Copy android-support-v4.jar form:
"android-sdk-folder\extras\android\support\v4"
to "libs" folder --> right click on this jar in this folder --> Build path --> Add to build path.
Where "android-sdk-folder" usually looks like: "C:\Users\User_Name\android-sdks"
I had the same issue, I did the following to fix the problem.
The order how they listed were first "src" and then "gen" path I switch them, so that "gen" folder is build before the "src"
THEN "Check" each one of the items listed
see: NoClassDefFoundError for code in an Java library on Android
Try out the same sample code in the new workspace.
Even you can copy and paste the sample map project and google play services-lib project (/extras/google/google_play_services/libproject/google-play-services_lib,) and paste that in the new fresh workspace.