在 Android 模拟器上运行谷歌地图应用程序

Posted

技术标签:

【中文标题】在 Android 模拟器上运行谷歌地图应用程序【英文标题】:Running google map application on Android Emulator 【发布时间】:2013-10-22 17:40:43 【问题描述】:

我的应用程序使用 Google Maps v2。此应用程序在 android 设备上成功运行。我试图在 Android 模拟器上运行相同的应用程序。我的模拟器的目标是Google APIs API Level 18 但这里的问题是应用程序在模拟器上运行但地图没有在地图片段上绘制,请参见下图

在 logcat 中我可以看到以下错误

Google Maps Android API v2 only supports devices with OpenGL ES 2.0 and above

以及以下警告

eglSurfaceAttrib not implemented

我已在 Manifest 中添加了此功能

  <uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

有人知道如何在模拟器上运行这个简单的应用程序吗?

提前致谢。

【问题讨论】:

我写了一篇关于如何在模拟器设备上启动和运行谷歌地图的教程。 twntee.tumblr.com/post/59576020346/…,看看对你有帮助。 重复?:Map not getting in emulator android api v2. 【参考方案1】:

首先确保您可以访问互联网

以及清单中的以下权限:`

<permission
    android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
    android:protectionLevel="signature"/>
<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>

<!--

不需要 ACCESS_COARSE/FINE_LOCATION 权限即可使用 Google Maps Android API v2,但推荐使用。 --> `

【讨论】:

【参考方案2】:

    要在模拟器中显示谷歌地图,您可以使用谷歌开发者控制台中的“浏览器密钥”,而不是 Android 密钥。这是因为 android 密钥是私有的,因此只会在真实的设备,但是通过在清单文件中使用浏览器密钥,您可以在 android 模拟器上运行地图。要为网站创建浏览器密钥,请转到“https://code.google.com/apis/console/”,将其留空,然后单击创建。在清单文件中使用生成的密钥,这应该会显示地图。

    我也建议你使用 install gene-motion emulator,下载并安装 google play 服务就可以了。

【讨论】:

任何人都可以确认使用“浏览器密钥”是一种有效的测试解决方法吗? doc page 表示“您需要一个 Android API 密钥,而不是浏览器密钥。”。【参考方案3】:

在 Android 4.4 中,现在可以在 Android 模拟器中运行 Google 地图,即使使用英特尔 HAXM AVD 也是如此。不再需要在 adb 命令上运行任何东西。不过,这需要几个步骤。如果有帮助,我制作了一系列关于该主题的视频。我使用 JSON 提要在 4.4 模拟器中的地图上放置标记。它们每个大约 30 分钟,因此您可能需要跳过以查找您想要的内容。前两个视频与这个问题最相关。我在该系列中还有三个视频处理 JSON 和标记...请参阅我的 YouTube 频道。

1) 在 Android 模拟器中使用 Google 地图(一般设置和先决条件)https://www.youtube.com/watch?v=gT-kORiFRTo 2) 在安卓模拟器中显示地图https://www.youtube.com/watch?v=0MZIYkm3Ezg

谢谢,祝你好运!

布兰登

【讨论】:

【参考方案4】:

我终于在我的模拟器中获得了地图。我按照这些步骤来实现它。

    创建avd并启动模拟器

    转到 Android SDK 中存在的平台工具路径并将这些 apk 放入其中。

    com.android.vending-20130716 com.google.android.gms-20130716 通过使用命令提示符(shift+右键单击-->在此处打开命令窗口)转到平台工具路径,一一安装这些 apk。按照这些命令 adb 设备 adb install com.android.vending-20130716 adb install com.google.android.gms-20130716 导入位于项目位置的 google-play-services_lib 项目并将其添加到您的项目中。 重新启动模拟器并清理您的项目并通过模拟器运行它。

就是这样。 :) 您可以从以下链接下载上面的 apk

Running Google Maps v2 on the Android emulator

【讨论】:

【参考方案5】:

Google 地图无法在模拟器中加载。

您需要在真机上安装应用程序。

或者您可以选择使用 Bluestack 并在其中测试您的应用程序。

http://bluestacks.com/

【讨论】:

【参考方案6】:

Google Maps v2 需要 Google Play Services ,它在 Android 模拟器中不可用。你可以试试这篇博文,应该对你有帮助。

http://javamvp.blogspot.com/2013/06/put-android-maps-v2-work-on-your.html

如果地图加载是您遇到的唯一问题,那么我很确定它的 api 关键问题。请在清单中重新检查。

【讨论】:

根据可用的文档,这是不正确的,请参阅此“如果您想在模拟器上测试您的应用程序,请展开 Android 4.2.2 (API 17) 或更高版本的目录,选择 Google APIs,并安装它。然后以 Google APIs 作为平台目标创建一个新的 AVD。注意:只有 Android 4.2.2 及更高版本的 Google APIs 平台包含 Google Play 服务。 developer.android.com/google/play-services/setup.html 如果他们已将其包含在最新版本中,则不需要上述设置。它以前不可用。请参阅我编辑的答案。

以上是关于在 Android 模拟器上运行谷歌地图应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在谷歌地图android上添加标记?

谷歌地图可以在模拟器上工作,但不能在 React 本机 APP 的 android 设备上工作

谷歌地图不能在 HTC 上运行?

谷歌地图显示在模拟器上,但不在设备上

Android应用谷歌地图显示灰色瓷砖而不是地图!

谷歌地图无法在 iPhone 模拟器上运行