谷歌地图API的Android V2 - 示例代码崩溃(Google Maps Android A

2019-06-21 16:17发布

我试图让示例代码 Android的谷歌地图API的Android V2'的工作。 我得到没有错误建项目。 然而,当我尝试在我的Galaxy Nexus运行应用程序(使用USB连接到我的笔记本电脑),应用程序立即崩溃。

  • 我填写在AndroidManifest.xml中我自己的地图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

没有任何人有一个提示如何解决这个或我可能是做错了什么?

Answer 1:

非常,非常认真遵循婴儿床表:
https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw

具体而言,我认为你需要:

  • 导入实际来源为“谷歌播放services_lib”项目,并将其链接作为一个Android库。
    • 通过项目做到这一点 - >属性 - > Android的 - >库,添加 - >谷歌播放services_lib(你可以右键点击你的项目,然后选择属性,然后选择Android设备)。
    • 不要它添加为通过“Java构建路径”为您的项目相关的项目,这并不为我工作。
  • 加入谷歌,播放services.jar和Android的支持,v4.jar到样本项目“库”文件夹中,并将其添加为“外部外部JAR”中的“构建路径 - >配置构建路径 - >库” 。

我发现,我被击中的确切同样的错误,你尝试使用示例代码时,这第二个步骤是必要的。 第一步是要避免NoClassDefFoundErrorcom.google.android.gms.R$styleable在我真正的项目。

我也需要做一个干净的构建和卸载该应用从设备(从早期的测试中尝试)之前的示例代码工作。



Answer 2:

按照接下来的示例代码的指令由谷歌。

跳过“4”部分,并按照以下说明:

  • 新的文件夹添加到您的项目命名为“库”
  • 复制谷歌播放-services.jar形式:

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

    到“库”文件夹 - >右键点击这个jar此文件夹中 - >构建路径 - >添加到构建路径。

  • 复制Android的支持,v4.jar形式:

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

    到“库”文件夹 - >右键点击这个jar此文件夹中 - >构建路径 - >添加到构建路径。

其中,“Android的SDK文件夹”,通常是这样的:“C:\ Users \用户名\ Android的软件开发工具包”



Answer 3:

我有同样的问题,我做了以下来解决这个问题。

  1. 转到项目的“属性”。
  2. 选择“Java构建路径”
  3. 选择“排序和导出”选项卡
  4. 您应该看到所选项目的“SRC”,在这里“根”的路径和依赖。

他们是如何列出的顺序为先“SRC”,然后“根”的路径我切换他们,让“根”文件夹的“SRC”前建立

然后单击“检查”中列出的项目中的每一个

见: 代码的NoClassDefFoundError在Android的Java库



Answer 4:

这是因为很多困惑过如何导入项目。 该文档https://developers.google.com/maps/documentation/android/intro#sample_code说,你不应该选择在任何时候和用于获取样品运行,这是你需要坚持什么“复制项目进入工作区”。 不要选择此选项的播放服务和样本 - 让他们身在何处。

导入后,两个检查以下内容:

  1. 右键点击在MainActivity项目,然后选择属性
  2. 转到Android和确保你看到旁边的Google Play服务-LIB(播放服务LIB不应该被添加为一个罐子 - 相反,它应该作为一个Android库)一个绿色的勾
  3. 转到库部分Java构建路径,并引入外部的jar(Android的支持,v4.jar)
  4. [重要提示]进入购买和出口的Java构建路径,并确保Android的支持,v4.jar旁边剔它(它默认情况下不会发生,这就是为什么你看到你提到的错误在顶部)
  5. 确保清洁和进行更改后生成项目,这样你就不会最终试图解决的事情,工作,但根本就没有推。


Answer 5:

  1. 按照示例代码指令由谷歌。
  2. 而这样设置Java构建路径:


Answer 6:

我面临着同样的问题,解决不了。 最后,我把样本项目文件夹从另一台机器,它复制到矿山和加载新的项目,我从其他机器了。 然后一切工作正常。 我试图通过比较2个示例项目跟踪这个问题,但不能。 无论如何,我从其他机器采取了新的样本项目工作正常。



Answer 7:

我有很多相同的问题。 文件“进口的summary.txt”有了答案。 在我来说,我已经进口了Eclipse项目进入的路径,在路径名的空间。 这会导致向导的一个问题。 创建新的路径。 重新导入项目。 然后建立/重建项目。 没问题。



Answer 8:

  1. 请尝试在新的工作空间相同的示例代码。

  2. 甚至你可以复制和粘贴示例图计划和谷歌播放服务LIB项目(/演员/谷歌/ google_play_services / libproject /谷歌播放services_lib)并粘贴在新的干净的工作区。

  3. DONOT后忘记添加所需的JAR文件从SDK。 (“Android的支持,v4.jar”位于“/extras/android/compatibility/v4/android-support-v4.jar”在你的“Android的SDK” drectory。)


文章来源: Google Maps Android API v2 - Sample Code crashes