Google Maps Android API v2 - 示例代码崩溃

ale*_*exx 43 crash maps android sample google-maps-android-api-2

我正在尝试使用Android"Google Maps Android API v2" 的示例代码.我没有错误地构建项目.但是,当我尝试在我的Galaxy Nexus上运行应用程序(与usb连接到我的笔记本电脑)时,应用程序立即崩溃.

  • 我在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
Run Code Online (Sandbox Code Playgroud)

有没有人提示如何解决这个问题或者我可能做错了什么?

Dan*_*n J 78

非常小心地关注婴儿床:https://docs.google.com/document/pub?id = 19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw

特别是,我认为你需要:

  • 导入"google-play-services_lib"项目的实际来源并将其链接为Android库.
    • 通过项目 - >属性 - > Android - >库,添加 - > google-play-services_lib(您可以右键单击您的项目并选择属性,然后选择Android)来完成此操作.
    • 千万不能将其添加为通过"Java构建路径"为您的项目相关的项目,这并不为我工作.
  • 将google-play-services.jar和android-support-v4.jar添加到示例项目的"libs"文件夹中,并在"构建路径 - >配置构建路径 - >库"中将它们添加为"外部外部JAR" .

我发现第二步是必要的,因为我在尝试使用示例代码时遇到了与您完全相同的错误.第一步是要避免NoClassDefFoundErrorcom.google.android.gms.R$styleable我的实际项目.

在示例代码工作之前,我还需要从设备(从早期的测试尝试)中执行Clean构建和卸载应用程序.

  • 谢谢,它对我有用.顺便说一句:Android上有什么东西可以真正起作用,还是你需要解决所有问题? (18认同)
  • 谢谢!我确实不得不将android-support-v4.jar放在一个新的"libs"文件夹中.(在我将此jar添加为外部jar依赖项之前.)现在应用程序不再崩溃了. (11认同)

Dav*_*vid 26

按照谷歌的下一个示例代码说明.

跳过"4"部分,并按照以下说明操作:

  • 将新文件夹添加到名为"libs"的项目中
  • 复制google-play-services.jar表单:

    "Android的SDK文件夹\演员\谷歌\ google_play_services\libproject \的Google Play-services_lib \库"

    到"libs"文件夹 - >右键单击此文件夹中的这个jar - >构建路径 - >添加到构建路径.

  • 复制android-support-v4.jar表单:

    "Android的SDK文件夹\演员\机器人\ SUPPORT\V4"

    到"libs"文件夹 - >右键单击此文件夹中的这个jar - >构建路径 - >添加到构建路径.

"android-sdk-folder"通常如下所示:"C:\ Users\User_Name\android-sdks"


Joh*_*nik 14

我有同样的问题,我做了以下修复问题.

  1. 转到项目的"属性".
  2. 选择"Java Build Path"
  3. 选择"订购和导出"选项卡
  4. 您应该在这里看到所选项目的"src"和"gen"路径和依赖项.

他们列出的顺序是第一个"src"然后"gen"路径我切换它们,以便"gen"文件夹在"src"之前构建

然后"检查"列出的每个项目

请参阅: Android上Java库中的代码的NoClassDefFoundError