12

我一直在尝试运行新的Google maps V2 API的示例项目

并显示一个空白屏幕在此处输入图像描述

问题是为什么它没有在 2.2 设备上显示地图,在堆栈跟踪上我看到以下消息:

  12-06 09:40:36.039: W/dalvikvm(14657): Unable to resolve superclass of Lmaps/a/du; (411)
  12-06 09:40:36.039: W/dalvikvm(14657): Link of class 'Lmaps/a/du;' failed
  12-06 09:40:36.039: W/dalvikvm(14657): Unable to resolve superclass of Lmaps/a/ej; (2363)
  12-06 09:40:36.039: W/dalvikvm(14657): Link of class 'Lmaps/a/ej;' failed
  12-06 09:40:36.039: W/dalvikvm(14657): Unable to resolve superclass of Lmaps/j/k; (2379)
  12-06 09:40:36.039: W/dalvikvm(14657): Link of class 'Lmaps/j/k;' failed
  12-06 09:40:36.039: E/dalvikvm(14657): Could not find class 'maps.j.k', referenced from method maps.y.ae.a
  12-06 09:40:36.039: W/dalvikvm(14657): VFY: unable to resolve new-instance 3571 (Lmaps/j/k;) in Lmaps/y/ae;
  12-06 09:40:36.039: D/dalvikvm(14657): VFY: replacing opcode 0x22 at 0x007d
  12-06 09:40:36.125: D/dalvikvm(14657): VFY: dead code 0x007f-008f in Lmaps/y/ae;.a (Landroid/view/LayoutInflater;Lcom/google/android/gms/maps/GoogleMapOptions;Z)Lmaps/y/ae;
  12-06 09:40:36.192: I/dalvikvm(14657): Could not find method java.io.IOException.<init>, referenced from method maps.bg.e.a
  12-06 09:40:36.195: W/dalvikvm(14657): VFY: unable to resolve direct method 14965: Ljava/io/IOException;.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
  12-06 09:40:36.195: D/dalvikvm(14657): VFY: replacing opcode 0x70 at 0x0087
  12-06 09:40:36.195: D/dalvikvm(14657): VFY: dead code 0x008a-008c in Lmaps/bg/e;.a ([B)Ljava/util/Hashtable;
  12-06 09:40:36.555: D/dalvikvm(14657): GC_FOR_MALLOC freed 4020 objects / 327288 bytes in 61ms
  12-06 09:40:36.707: E/Google Maps Android API(14657): Google Maps application is missing.

编辑:好吧,我们似乎还不能在模拟器上运行它。

4

6 回答 6

7

logcat 看到以下消息:

12-06 09:40:36.707: E/Google Maps Android API(14657): Google Maps application is missing.

所以安装谷歌地图解决了这个问题。

此外,谷歌地图的安装似乎在某些国家被阻止,如果没有安装谷歌地图,在 2.2 上运行应用程序根本无法工作。

从评论中,用户发布了一个代码来检查以下问题中是否安装了谷歌地图:

Google Maps Android API V2 检查设备上是否安装了 GoogleMaps

于 2012-12-06T22:10:12.110 回答
3

我尚未对此进行测试,但我假设您需要设备上的 google play 服务,请检查您设备上的以下内容:

播放服务应用

如果缺少这个,我感觉新的 GMS 将无法工作,因为您的模拟器没有谷歌地图或谷歌播放服务,这将停止工作,因为它找不到包。

从外观上看,GMS 在真实设备上静默失败,而不是像模拟器那样崩溃。

在您的设备上手动安装Google Play 服务,然后重试。

于 2012-12-05T18:08:05.867 回答
1

我有类似的问题。安装(然后卸载)谷歌地图后,一切都安定下来了。

于 2012-12-15T11:46:35.167 回答
1

确保包括对以下内容的调用:

GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo

在你的应用程序的某个地方(即关于部分)。在我使用它之前,我遇到了同样的问题。

(我知道这篇文章已经发布了一个月,用户可能已经继续开发,但是其他人可能会像我一样从这些信息中受益)

于 2013-01-03T14:37:52.423 回答
1

我在使用 android 2.3.7 设备时遇到了同样的问题,网上的答案都没有为我指明正确的方向。在狂野的头发上,我强制退出播放服务并重新启动我的应用程序并开始渲染地图。

于 2013-07-11T13:46:56.747 回答
0

模拟器的一个很好的解决方案是 Genymotion!
登录@ http://www.genymotion.com
后下载它 安装它和虚拟框
在eclipse 中的“安装新软件”中搜索 http://plugins.genymotion.com/eclipse
用它打开一个模拟器,用“google apps”创建一个虚拟设备,在上面安装播放服务,就是这样,当你编译你的应用程序时,你可以选择genymotion emulate device..
这需要很多内存,但是真的比 AVD 好用 ;-)

于 2013-10-18T18:37:01.247 回答