【问题标题】:Google Maps api v2 class not found未找到 Google Maps api v2 类
【发布时间】:2013-05-11 02:11:50
【问题描述】:

我正在使用 google maps api v2,一切正常。今天早上我更新了sdk,现在地图不工作了。尝试了很多东西,比如再次导入 lib 项目,但似乎没有任何效果。请帮忙。

这是logcat的输出

05-16 08:53:34.327: E/dalvikvm(3422): Could not find class  'com.google.android.gms.maps.model.LatLng', referenced from method  com.apptree.de_luxe.InfoActivity.<clinit>
05-16 08:53:34.327: W/dalvikvm(3422): VFY: unable to resolve new-instance 170 (Lcom/google/android/gms/maps/model/LatLng;) in Lcom/apptree/de_luxe/InfoActivity;
05-16 08:53:34.327: D/dalvikvm(3422): VFY: replacing opcode 0x22 at 0x0000
05-16 08:53:34.327: E/dalvikvm(3422): Could not find class 'com.google.android.gms.maps.model.MarkerOptions', referenced from method com.apptree.de_luxe.InfoActivity.setUpMap
05-16 08:53:34.327: W/dalvikvm(3422): VFY: unable to resolve new-instance 172 (Lcom/google/android/gms/maps/model/MarkerOptions;) in Lcom/apptree/de_luxe/InfoActivity;
05-16 08:53:34.327: D/dalvikvm(3422): VFY: replacing opcode 0x22 at 0x0002
05-16 08:53:34.347: E/dalvikvm(3422): Could not find class 'com.google.android.gms.maps.MapFragment', referenced from method com.apptree.de_luxe.InfoActivity.setUpMapIfNeeded
05-16 08:53:34.347: W/dalvikvm(3422): VFY: unable to resolve check-cast 169 (Lcom/google/android/gms/maps/MapFragment;) in Lcom/apptree/de_luxe/InfoActivity;
05-16 08:53:34.357: D/dalvikvm(3422): VFY: replacing opcode 0x1f at 0x000f
05-16 08:53:34.367: D/dalvikvm(3422): DexOpt: unable to opt direct call 0x029b at 0x0c in Lcom/apptree/de_luxe/InfoActivity;.<clinit>
05-16 08:53:34.367: D/dalvikvm(3422): DexOpt: unable to opt direct call 0x029c at 0x04 in Lcom/apptree/de_luxe/InfoActivity;.setUpMap
05-16 08:53:34.387: W/dalvikvm(3422): Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lcom/apptree/de_luxe/InfoActivity;
05-16 08:53:34.387: W/dalvikvm(3422): Class init failed in newInstance call (Lcom/apptree/de_luxe/InfoActivity;)
05-16 08:53:34.387: D/AndroidRuntime(3422): Shutting down VM
05-16 08:53:34.398: W/dalvikvm(3422): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
05-16 08:53:34.457: E/AndroidRuntime(3422): FATAL EXCEPTION: main
05-16 08:53:34.457: E/AndroidRuntime(3422): java.lang.ExceptionInInitializerError
05-16 08:53:34.457: E/AndroidRuntime(3422):     at java.lang.Class.newInstanceImpl(Native Method)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at java.lang.Class.newInstance(Class.java:1319)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at android.os.Looper.loop(Looper.java:137)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at android.app.ActivityThread.main(ActivityThread.java:5041)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at java.lang.reflect.Method.invokeNative(Native Method)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at java.lang.reflect.Method.invoke(Method.java:511)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-16 08:53:34.457: E/AndroidRuntime(3422):     at dalvik.system.NativeStart.main(Native Method)
05-16 08:53:34.457: E/AndroidRuntime(3422): Caused by: java.lang.NoClassDefFoundError: com.google.android.gms.maps.model.LatLng
05-16 08:53:34.457: E/AndroidRuntime(3422):     at com.apptree.de_luxe.InfoActivity.<clinit>(InfoActivity.java:35)
05-16 08:53:34.457: E/AndroidRuntime(3422):     ... 15 more

【问题讨论】:

  • 你在你的安卓地图项目中引用过谷歌播放服务库吗?
  • @Ravi Raghunandan 是对的……您应该正确地将 google-play-serives_lib 引用到您的项目中。
  • 已经做到了。在 Android 下的属性中,我添加了 lib 项目,我的目标是 google api
  • 您是否引用了以下库项目?
  • 你用什么键来创建你的 Map 键?那是你的 Eclipse 默认键吗?

标签: android android-maps


【解决方案1】:

在 Eclipse 中转到:

“项目”->“属性”->“Java 构建属性”

在“订购和导出”选项卡上,我在我的项目中选中了“Android 私有库”。我也为它引用的库项目做了这个。这修复了升级到 SDK 22 后我的类未找到错误。

【讨论】:

  • +1 我刚刚更新后遇到了同样的问题并解决了。
  • 另外,您需要适用于 ADT 22 的 Android SDK 构建工具。
  • 我必须为我所有的图书馆项目这样做。多么激烈的二十分钟,虽然大声笑
  • 我还不得不更改订单。我将“android 私有库”向下移动,使它们位于实际库之下,但在“android 依赖项”之上。有了这个额外的步骤,它就起作用了。
【解决方案2】:

您应该在地图项目中引用 google play services library 项目。

将您的库项目导入您的工作区。将其导入 Eclipse。

右键单击您的项目。转到属性。选择安卓。点击安卓。浏览并添加库项目。

【讨论】:

  • 在导入新库之前,您是否已从当前工作区中删除了旧库?
  • 是的,我删除了所有内容,并且在今天之前又删除了一个,但没有将其导入我的工作区,并且在更新后它无法正常工作
  • 你需要将它导入到你当前的工作空间中。然后将它作为库添加到你的项目中。我希望它会起作用。
  • 谢谢,但上述 tafty 的解决方案奏效了。我不知道为什么它在更新后停止工作。
  • @Ravi 奇怪以上是引用库项目的推荐方式。我需要注意这种行为
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-06
  • 2011-04-10
  • 2013-03-24
  • 2023-04-02
  • 1970-01-01
相关资源
最近更新 更多