7

I am trying to run sample code mention here : Google Maps Android API V2 Sample code

but i am getting error NoClassDefFound. Below is my logcat.

Can any one help me to solve it. Any help is highly appricated Thanks

12-04 18:04:18.854: E/AndroidRuntime(1801): java.lang.ExceptionInInitializerError
12-04 18:04:18.854: E/AndroidRuntime(1801):     at java.lang.Class.newInstanceImpl(Native Method)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at java.lang.Class.newInstance(Class.java:1319)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at android.os.Looper.loop(Looper.java:137)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at android.app.ActivityThread.main(ActivityThread.java:4745)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at java.lang.reflect.Method.invokeNative(Native Method)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at java.lang.reflect.Method.invoke(Method.java:511)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-04 18:04:18.854: E/AndroidRuntime(1801):     at dalvik.system.NativeStart.main(Native Method)
12-04 18:04:18.854: E/AndroidRuntime(1801): Caused by: java.lang.NoClassDefFoundError: com.example.mapdemo.BasicMapActivity
12-04 18:04:18.854: E/AndroidRuntime(1801):     at com.example.mapdemo.MainActivity.<clinit>(MainActivity.java:98)
12-04 18:04:18.854: E/AndroidRuntime(1801):     ... 15 more
4

10 回答 10

35

我有同样的问题,并通过执行以下操作得到解决,

  • 删除您手动添加的 android-support-v4.jar
  • 右键单击项目并选择 Android 工具 -> 添加支持库 ...

在此之后,一切都对我有用。

于 2012-12-04T15:17:29.970 回答
3

这对我有用。

导入 Android-Support-V4.jar 和 Google_Play_Services_lib.jar 后,转到:

项目属性 > Java 构建路径 > 排序和导出。

然后确保选中 Android-Support-V4.jar 和 Google_Play_Services_lib.jar 旁边的复选框。

单击确定,然后运行。一切都应该很好。

于 2013-01-11T18:37:00.957 回答
1

android-support-v4.jar的多重引用

这对我有用。
如果您的项目和 goolge 播放服务库项目都包含 android-support-v4.jar 则它会发生冲突。
从任何一个项目中删除 android-support-v4.jar。

于 2014-11-13T09:30:45.943 回答
1

跟进 NewUserSOF 的回答(我是新手):

我实现了 Jairo 的回答,Google Maps V2“MainActivity”运行并显示了选项列表。

但是现在当我点击其中任何一个时,我的模拟器说我需要更新 Google Play 服务。当我点击“更新”按钮时,应用程序崩溃了。

来自 LogCat:

12-19 16:02:44.902:W/GooglePlayServicesUtil(2431):Google Play 服务已过期。需要 2012100 但找到 1015

12-19 16:02:51.136: E/AndroidRuntime(2431): android.content.ActivityNotFoundException: 找不到活动来处理 Intent { act=android.intent.action.VIEW dat=http://play.google.com/商店/应用程序/详细信息?id=com.google.android.gms flg=0x80000 pkg=com.android.vending }

有没有办法在模拟器上更新 Google Play 服务。(模拟器是运行 Google API 的 Nexus S 17)。

于 2012-12-19T16:16:52.427 回答
0

听起来你错过了一些重要的东西;)你做了这些步骤吗?

  • 选择 Project > Properties,选择 Java Build Path,然后导航到 Libraries。
  • 选择 Add External Jars,包括以下 jar 文件,然后单击 OK:

/extras/android/compatibility/v4/android-support-v4.jar

  • 添加您自己的 Google Maps Android API 密钥。
于 2012-12-04T12:51:30.637 回答
0

编辑:Jairo 的回答对我有用。Edit2:它运行但没有显示地图。我有 API 密钥。是刚拿到手的新品。使用的包名 com.example.mapdemo。Edit3:刷新 API 密钥(它们不会持续很长时间)。仍然没有显示地图。Edit4:使用错误的密钥库导致错误的 SHA1。当我搜索它时,搜索没有在 .android 文件夹中找到它(ubuntu 没有搜索隐藏文件夹),而是显示了我从下载 android 源代码中获得的密钥库。

我有完全相同的错误。

MainActivity 启动,指的是同一个包中的 BasicMapActivity。BasicMapActivity 扩展了 android-support-v4.jar 中的 FragmentActivity。

在此页面上:https ://developers.google.com/maps/documentation/android/intro 请参阅第 4 步:“选择添加外部 jar,包括以下 jar 文件,然后单击确定:/extras/android/compatibility/v4/ android-support-v4.jar"

我的 jar 路径是 /support/ 而不是 /compatibility/ - 我没有 /compatibility/ 文件夹。也许这是一个线索?

我的 android-support-v4.jar 的修改日期为 Mon 19 Nov 2012 09:14:47 AM EST。让我想知道我是否错过了最新的更新。SDK Manager 已运行并重新运行。

于 2012-12-04T14:05:21.900 回答
0

对我来说,问题是没有安装谷歌地图。我擦了我的平板电脑,忘了重新安装它。

于 2013-01-17T00:59:56.587 回答
0

根据您的源设置方式,您可能需要设置要导出的 android-support-library(右键单击-> 属性-> java 构建路径-> 顺序和导出)此外,您需要使用 SupportMapFragment 而不是支持库的 MapFragment。确保您还使用 getSupportFragmentManager 而不是 getFragmentManager。

于 2012-12-05T00:17:49.667 回答
0

1) 验证 Eclipse 用于签署您的应用程序的调试密钥库实际上是您提取 SHA1 哈希以生成 api 密钥的那个

去:

Window > Android > Build > "Default debug keystore" 并将路径复制到 keystore

keytool -list -v -keystore YOUR_KEYSTORE_PATH -alias androiddebugkey

2) 验证你在API控制台配置中SHA1哈希后输入了你应用的包

Android 应用程序:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX;com.yourapp.package

3) 我在测试开始时遇到了这个错误,我记得 Logcat 上记录了一个错误。诸如“身份验证错误”或“API 密钥错误”之类的东西。只需在应用程序的第一次运行时注意 logcat,以检查您的 API 密钥没有问题。如果您遇到此错误,您将不得不终止/重新安装该应用程序。在应用程序仍在运行时修复 api 密钥并不能完全解决问题。

4) 我必须将支持 jar 添加到示例应用程序内的 libs 文件夹中。在 Eclipse 构建路径中将其链接为外部 jar 对我不起作用。

于 2012-12-04T17:00:11.403 回答
0

Google Play 服务库项目是否作为 Sampleproject 中的库项目引用?

于 2012-12-04T13:38:24.490 回答