我正在努力让sample code Android'Google Maps Android API v2'正常运行。我没有错误地构建项目。但是,当我尝试在我的Galaxy Nexus上运行应用程序(用usb连接到我的笔记本电脑)时,应用程序会立即崩溃。
这是日志记录:
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
是否有人提示如何解决这个问题或者我可能做错了什么?
答案 0 :(得分:78)
非常小心地按照婴儿床单:
https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw
特别是,我认为你需要:
我发现第二步是必要的,因为我在尝试使用示例代码时遇到了与您完全相同的错误。第一步是必要的,以避免在我的实际项目中NoClassDefFoundError
com.google.android.gms.R$styleable
。
在示例代码工作之前,我还需要从设备(从早期的测试尝试)中执行Clean构建和卸载应用程序。
答案 1 :(得分:26)
通过谷歌跟踪next sample code instructions。
跳过“4”部分,并按照以下说明操作:
复制google-play-services.jar表单:
“Android的SDK夹\额外\谷歌\ google_play_services \ libproject \ Google处理播放services_lib \库”
到“libs”文件夹 - &gt;右键单击此文件夹中的此jar - &gt;构建路径 - &gt;添加到构建路径。
复制android-support-v4.jar表单:
“Android的SDK夹\额外\机器人\支持\ V4”
到“libs”文件夹 - &gt;右键单击此文件夹中的此jar - &gt;构建路径 - &gt;添加到构建路径。
“android-sdk-folder”通常如下所示:“C:\ Users \ User_Name \ android-sdks”
答案 2 :(得分:14)
我有同样的问题,我做了以下修复问题。
他们列出的顺序是第一个“src”然后“gen”路径我切换它们,以便“gen”文件夹在“src”之前构建
然后“检查”列出的每个项目
请参阅: NoClassDefFoundError for code in an Java library on Android
答案 3 :(得分:2)
这是因为对如何导入项目存在很多困惑。文档 https://developers.google.com/maps/documentation/android/intro#sample_code 假设您不应该随时选择“将项目复制到工作区”,并且为了让样本运行,您需要坚持这样做。不要为播放服务和样本选择此选项 - 将它们保留在原来的位置。
导入后,请检查以下内容:
答案 4 :(得分:1)
答案 5 :(得分:0)
我遇到了同样的问题但无法解决。最后,我从另一台机器上取样本项目文件夹,将其复制到我的并加载了我从另一台机器上获取的新项目。一切都很好。我试图通过比较2个样本项目来跟踪问题但不能。无论如何,我从另一台机器上取得的新样本项目工作正常。
答案 6 :(得分:0)
我遇到了同样的问题。 文件&#39; import-summary.txt&#39;得到了答案。 在我的例子中,我将eclipse项目导入到路径名中带有空格的路径中。这会导致向导出现问题。 创造了新的道路。重新导入项目。然后构建/重建项目。 没问题。
答案 7 :(得分:0)
在新工作区中尝试相同的示例代码。
即使你可以复制并粘贴示例地图项目和google play services-lib项目(/ extras / google / google_play_services / libproject / google-play-services_lib),然后将其粘贴到新的新工作区中。< / p>