Google Maps Android API v2 - 示例代码崩溃 [英] Google Maps Android API v2 - Sample Code crashes
问题描述
我正在尝试获取 Android 的 示例代码谷歌地图 Android API v2' 工作.我得到的项目没有错误.但是,当我尝试在我的 Galaxy Nexus(通过 USB 连接到我的笔记本电脑)上运行该应用程序时,该应用程序立即崩溃.
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.
- 我在 AndroidManifest.xml 中填写了自己的 Maps API 密钥
- 我针对 Android 4.1.2 构建
这是日志记录:
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?
推荐答案
非常非常仔细地遵循婴儿床单:
https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw
Follow the crib sheet very, very carefully:
https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw
我认为您尤其需要:
- 导入google-play-services_lib"项目的实际源代码并将其链接为 Android 库.
- 通过 Project -> Properties -> Android -> Library, Add -> google-play-services_lib 执行此操作(您可以右键单击您的项目并选择 Properties,然后选择 Android).
- 不要不要通过您的项目的Java 构建路径"将其添加为依赖项目,这对我不起作用.
- Import the actual source for the "google-play-services_lib" project and link it as an Android library.
- Do this through Project -> Properties -> Android -> Library, Add -> google-play-services_lib (you can right click on your project and choose Properties, then select Android).
- Do not add it as a dependent Project through the "Java Build Path" for your project, that didn't work for me.
我发现第二步是必要的,因为我在尝试使用示例代码时遇到了与您完全相同的错误.第一步是在我的真实项目中避免
com.google.android.gms.R$styleable
中的NoClassDefFoundError
所必需的.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.
这篇关于Google Maps Android API v2 - 示例代码崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!