【问题标题】:Google maps v2 not displayed谷歌地图 v2 未显示
【发布时间】:2012-12-05 16:07:25
【问题描述】:

我一直在尝试运行新 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.

编辑:看来我们还不能在模拟器上运行它。

【问题讨论】:

标签: android google-maps-android-api-2


【解决方案1】:

logcat 看到以下消息:

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

所以安装 Google Maps 已经解决了问题。

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

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

Google Maps Android API V2 check if GoogleMaps are installed on device

【讨论】:

  • 我问了一个类似的问题,并写了一篇关于如何以编程方式检查是否安装了谷歌地图的帖子,如果没有安装谷歌地图,则将用户重定向到 Play 商店。看到这个问题:stackoverflow.com/questions/13778965/…
  • 在我的例子中,谷歌地图应用程序无法直接从市场上安装。
  • 这有点令人担忧:/ 希望 PlayServices API 能够处理这个问题!
  • 我也是,但没有。我安装了最新版本,但仍然没有任何帮助。
【解决方案2】:

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

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo
      

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

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

      【讨论】:

      • 它是用来检查google play服务的可用性,问题是用户可能没有在他的设备上安装google maps。
      • 我在上面所做的声明是指 Google 希望您在申请中添加的内容以授予他们的许可。没有它,我的实现就无法正常工作。
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-01
          相关资源
          最近更新 更多