我想在我的应用程序中使用 Google Play 服务 API,但是当我打开模拟器来测试我的应用程序时,它会向我发送一条消息,上面写着“必须下载 Google Play 服务”。我知道会发生这种情况,因为我在我MainActivity
的方法中编写了这个测试onResume()
。
我想知道如何在我的模拟器中安装 Google Play 服务,因为很快我将需要测试我的地图。
12 回答
查看设置 Google Play 服务,其中说:
要使用Google Play 服务 API开发应用程序,您需要使用 Google Play 服务 SDK 设置您的项目。
如果您尚未安装 Google Play 服务 SDK,请按照添加 SDK 包的指南立即获取它。
要在使用 Google Play 服务 SDK 时测试您的应用,您必须使用:
- 运行 Android 2.3 或更高版本并包含 Google Play 商店的兼容 Android 设备。
- 带有AVD的 Android 模拟器,它运行基于 Android 4.2.2 或更高版本的 Google API 平台。
对于api 21+,您可以将系统映像与 Google Play 一起使用,如下所述。
对于api 19+(Android 4.4 Kitkat),您可以将系统映像 x86 与 Google Api 一起使用(我能够使用它)。
对于api 17+(Android 4.2.2),您可以尝试将系统映像 ARM 与 Google Api 一起使用(它对我不起作用)。
我能够将 Google Play 和 Google Services 作为单独的 apk 安装到纯系统映像 api 16 和 17,但在那之后它们并没有真正工作(服务粉碎和播放不打开)。所以似乎不可能让它们在纯 AVD 映像上工作,因为它们应该以 root 访问权限安装。在预装了 Google API 的 AVD 系统映像上更新 Google 服务也是如此 - 由于证书不兼容而无法更新,即使使用 adb 也无法卸载,因为无权访问。
如何使用 Google Play 设置 AVD 系统映像
现在有更好的解决方案:使用带有内置 Google Play 服务的 AVD 图像。它将使您能够使用包括 Google Play 在内的 Google 服务。您也可以在不重新创建 AVD 映像的情况下对其进行更新。
打开 AVD 管理器并选择创建新设备。您应该使用带有 Play 商店图标的设备定义。
然后为其选择系统映像。您应该使用Google Play而不是使用 Google API 选择一种。
然后启动新设备。
您可以如屏幕截图所示更新播放服务,也可以在设备上手动更新。
这就是您如何让 Android Google Maps API v2 在您的模拟器上运行。
创建一个新的模拟器
- 对于设备选择“5.1'' WVGA (480 x 800: mdpi)”
- 对于目标选择“Android 4.1.2 - API level 16”
- 对于“CPU/ABI”选择“ARM”
- 保留默认设置
这些是对我有用的设置。我不知道不同的。
启动模拟器
通过 ADB install 命令安装com.android.vending-1.apk和com.google.android.gms-1.apk
更长的答案在我关于这个问题的博客文章中https://medium.com/nemanja-kovacevic/how-to-make-android-google-maps-v2-work-in-android-emulator-e384f5423723
我遇到了另一种在模拟器上使用 Google Play 服务的解决方案。http://www.genymotion.com/上的人提供了非常快速的模拟器,您可以在上面安装 Google Play 服务。他们只需要您注册即可开始下载,并且您需要安装 Virtual box。目前他们迎合 Android 16 和 17,但更多的正在开发中。
在当前版本 (Android Studio 0.5.2) 中,现在有一个设备类型为“Google APIs x86 (Google Inc.) - API Level 19”。
关键是选择你的模拟器的目标,例如:Google APIs (ver 18)。例如,如果您选择Jellybean 18(无 API),您将无法测试需要 Google 服务(例如地图)的应用程序。请记住,您必须首先使用 Android SDK 管理器下载您喜欢的版本的 Google API。
这是一个很好的做法,它比使用大多数解决方法要好得多。
我最近尝试开发 google MAP API V2 应用程序并尝试通过模拟器运行它,但每次它都显示错误“此手机中未安装 Google Play Servcies”。从我的角度来看,即使我认为 google MAP API V2 在模拟器上也不起作用。
解决方案
然后我尝试在我的 Sony Experia 上运行相同的示例,它再次向我显示相同的错误。然后我在我的手机上安装了谷歌播放服务,令人惊讶的是它开始工作了..:)))
我得到它的工作
- 通过 Android SDK 管理器安装 Google Play 服务
- 使用 Galaxy Nexus 设备(4.65 英寸,720 x 1280:xhdpi)
- 针对 Android 4.2.2 Google API 级别 17
转到https://university.xamarin.com/resources/working-with-android-emulators。向下滚动到“安装 Google Play 服务”部分。一步一步地走过那里。
在这里直接从 xamarin 剽窃,所以我不会因为链接而不包括解决方案而感到厌烦。在我在 xamarin 页面上找到全面工作的解决方案之前,我在堆栈中找到了命中。
- 启动 Xamarin Android Player 并运行提供的图像之一,以下假设您已启动 KitKat Nexus 4 图像。从 www.teamandroid.com/gapps/ 下载适当的 Google Play 服务 .zip 文件。确保下载适合您的 Android 版本的图像。
- 将 .zip 文件拖到正在运行的模拟器上并放下它以安装组件,这里我们在 Mac OS X 上显示它,但在 Windows 中使用相同的机制。您将收到将软件包安装到模拟器上的提示,这表明映像将重新启动
- 重新启动后,您将收到安装完成的通知,并且该图像现在将具有 Google 地图、Google+ 和对 Google Play 商店的支持。请注意,有些事情无法正常工作,并且您可能会从某些服务中得到一些错误,但您可以放心地忽略这些并继续说明。
- 接下来,您需要关联一个 Google 帐户,以便您可以使用 Google Play 商店更新服务。它应该会提示您这样做,但如果没有,您可以进入 Google 设置并添加一个新帐户。添加帐户后,您可以通过打开 Google Play 商店应用程序并从侧栏菜单进入设置来更新 Google 应用程序。
- 选择设置,然后向下滚动到构建版本号信息并双击它,直到它告诉您它是最新的,或者它将下载并安装新版本。
- 关闭设备(按住右侧工具栏中的电源按钮)并重新启动设备。重启后应该提示需要更新 Google Play 服务,点击通知会打开 Google Play 商店并安装最新版本
现在,您可以在 Xamarin Android Player 中运行依赖于 Google 地图的应用程序。
如果您已安装 Android Studio(即 1.5)并尝试以 SDK 4.0 为目标,那么您可能无法找到并设置带有 SDK-vX.XX(带有 Google API)的 AVD Emulator 和 AVD Emulator。
请参阅以下步骤以下载所需的库并开始。 AVD 模拟器设置 - 使用 GoogleAPI 为 SDK4.0 设置模拟器,以便地图应用程序可以工作 - 在 Android Studio 中
但不幸的是,上述方法对我来说效果不佳。并且无法使用 API 级别 17 (SDK 4.2) 创建模拟器。所以我关注了这篇对我来说效果很好的帖子。原因似乎是 Android Studio Emulator 创建窗口的选项/功能有限。
我知道这是一个老问题,但我来到这里是因为我遇到了与上述每个人类似的问题。我通过仔细阅读来解决它!
我没有注意到我可以选择 2 个可能的系统映像,一个包含 Google API,另一个不包含(在我的笔记本电脑上,菜单太小,我无法阅读附加的(使用 Google API)文本。
错过这是一件愚蠢的事情,但其他人可能像我一样有一个小屏幕,错过了这个:D
如果你的模拟器 x86 这个方法对你有用。
下载并安装http://opengapps.org/app/opengapps-app-v16.apk。并选择纳米包