46

我尝试在我的 Android 应用程序中实现 Google Maps v2,但不幸的是,我收到的不是地图,而是以下消息:

如果没有您手机中缺少的 Google Play 服务,此应用程序将无法运行。

是否可以在 Android 模拟器(平台 4.2)上运行这些地图?

4

11 回答 11

30

目前,参考 Google Android Map API v2,您无法在 Android 模拟器上运行 Google Maps v2;您必须使用设备进行测试。

于 2012-12-27T01:12:03.610 回答
25

对于那些已更新到最新版本的 google-play-services_lib 和/或出现此错误的用户Google Play services out of date. Requires 3136100 but found 2012110,此更新版本的com.google.android.gms.apk(Google Play 服务 3.1.36)com.android.vending.apk (Google Play 商店 4.1.6)应该可以工作。

在 Android SDK Tools 22.0.1 上使用此配置进行测试。另一种针对纯 Android 而不是 Google 的配置也应该可以工作。

  • 设备: Galaxy Nexus
  • 目标: Android 4.2.2 - API 级别 17
  • CPU/ABI: ARM(armeabi-v7a)
  • 选中:使用主机 GPU

...

  1. 打开 AVD
  2. 在终端/cmd中执行这个

    adb -e install com.google.android.gms.apk
    adb -e install com.android.vending.apk
    
  3. 重新启动 AVD

  4. 玩得开心编码!!!

我发现这种方式是最简单、最干净的,并且它适用于最新版本的软件,它允许您修复所有错误。

于 2013-06-11T04:07:08.480 回答
14

请尝试以下方法。这对我来说是成功的

脚步:

  1. 使用以下配置创建一个新的模拟器: AVD 配置

  2. 启动模拟器并安装以下APK文件:GoogleLoginService.apkGoogleServicesFramework.apkPhonesky.apk. 您可以使用以下命令执行此操作:

    adb shell mount -o remount,yourAvdName -t yaffs2 /dev/block/mtdblock0 /system
    adb shell chmod 777 /system/app
    adb push GoogleLoginService.apk /system/app/
    adb push GoogleServicesFramework.apk /system/app/
    adb push Phonesky.apk /system/app/
    

    APK 链接:

    1. 谷歌登录服务.apk
    2. GoogleServicesFramework.apk
    3. Phonesky.apk又名 Google Play 商店,v.3.5.16
    4. 谷歌地图,v.6.14.1
    5. 谷歌播放服务,v.2.0.10
  3. 在模拟器中安装 Google Play 服务和 Google 地图

    adb install com.google.android.apps.maps-1.apk
    adb install com.google.android.gms-2.apk
    
  4. 从此链接下载 Google Play 服务修订版 4和额外的文件夹sdkmanager->extra->google play service
  5. google-play-services_lib从导入androidsdk\extras\google\google_play_services
  6. 创建一个新项目并将上述项目作为库项目引用。
  7. 运行项目。
于 2013-01-28T12:48:03.493 回答
12

我已经使用本指南在模拟器上成功安装了 Google Maps v2 。
您应该执行以下步骤:

于 2013-01-11T04:55:37.940 回答
4

我建议使用Genymotion的模拟器而不是 Google 的模拟器。它的启动速度更快,几乎实时响应。它还支持 Google Play 服务,因此也支持 Google 地图。

Genymotion 上的谷歌地图

试试看!这是一篇博客文章,可帮助您设置模拟器。

于 2013-11-13T09:46:35.530 回答
2

我可以让我的模拟器使用 Google Map V.2(使用 Google Play Service V.4)运行我的应用程序。我遵循了其他人建议的一些失败的步骤,但是我从中吸取了教训并以某种方式使其发挥作用。这是如何:

  1. 首先:您必须对地图应用程序进行编码。在您的元文件 XML 中正确设置所有适当的权限,并在您的应用程序中包含 Google Play Services APK 部分。要验证这是否属实,您必须在真实设备上运行您的应用程序并知道它可以与那里的地图一起使用。然后您可以继续处理您的模拟器,如下所示。

  2. 创建一个新的模拟器,或使用您现有的模拟器和规格:

    • 目标名称 = Android 4.1.2
    • API 级别 = 16
    • CPU = 任何。但是,我发现 ARM 比 x86 更快/响应更快
    • 有足够的 RAM 内存和空间 MB
  3. 运行你的模拟器(你的目标模拟器必须正在运行!)

  4. 将以下 APK(可通过 2013 年 4 月 2 日的 Dropbox 下载)下载到您的本地目录(扫描病毒!):

  5. 使用 ADB 命令将这两个 APK 安装到正在运行的(目标)模拟器中:

    DOS/控制台提示> adb -e install [path-to-APK-file]

    注意:您可能在此试用错误期间已在您的模拟器中安装了这些 APK,并且由于某种原因需要重新安装。您必须先卸载它们: adb -e uninstall (com.google.android.gms 或 com.android.vending)

  6. 在这里,事情可能会变得棘手。您认为您已经完成了,但是当您再次使用 Map 打开您的应用程序时,您得到的只是一个错误,内容为:“Google Play 服务已过期。需要 2012100 但找到 2010110”,并且可能会看到一个按钮“更新” Google Play。如果是这种情况,请不要尝试单击更新按钮,因为它不会做任何事情。我也遇到了这个错误,我通过以下两个附加步骤解决了它:

    • Clean-rebuild-reinstall 我的应用程序到模拟器中
    • 关闭我的模拟器并重新启动它。
  7. 就是这样,它现在工作得很好。

于 2013-04-02T18:59:22.757 回答
2

Google 已经更新了面向 API 23 的虚拟设备。它现在随 Google Play Services 9.0.80 一起提供。因此,如果您使用的是 Google Maps API V 2.0(我使用的是 play-services-maps:9.0.0 和 play-services-location.9.0.0),则无需解决方法。它只是工作!

于 2016-06-14T16:39:06.187 回答
1

您需要尝试使用 Google API 版本的模拟器。每个平台都有两个版本,Android 和 Android+Google API。确保在创建 AVD 时,在目标字段上选择 Google API 版本。

页面确保设备拥有 Google Play 服务 APK也很有帮助。

于 2012-12-26T12:15:01.520 回答
1

我已经在AndroVM虚拟机上成功运行了我们的应用程序,它需要 Google Maps API 2 。

AndroVM 没有安装 Google Maps 或 Google Play,但提供了 Cyanogen Gapps 存档的修改副本,这是一组安装在大多数 Android 设备上的专有 Google 应用程序。

从 AndroVM 常见问题解答中复制的说明:

如何安装 Google Apps(包括 Market/Play 应用程序)?

  • 下载 Google Apps:gapps-jb-20121011-androvm.tgz [基本上是 Cyanogen gapps 存档中的 /system 目录,没有在 AndroVM 上崩溃的 GoogleTTS 应用程序]
  • 在您的主机上解压 gapps...tgz 文件 – 您将创建一个系统目录
  • 获取 AndroVM 的管理 IP 地址(“AndroVM 配置”工具)并执行“adb connect xyzt”</li>
  • 做“adb root”</li>
  • 使用“adn connect xyzt”重新连接</li>
  • 执行“adb remount”</li>
  • 做“adb push system/ /system/”</li>

您的虚拟机将重新启动,并且您应该拥有包括 Market/Play 在内的谷歌应用程序。

您不会有一些 Google Apps,例如 Maps,但可以从 Market/Play 下载它们。

因此,请按照这些说明进行操作,然后使用 Google Play 安装 Google 地图!

使用虚拟机而不是模拟器的一些很大的副作用:

  • 非常优越的综合性能
  • OpenGL 加速
  • 谷歌播放支持

到目前为止,唯一的障碍是缺乏多点触控手势,这对于地图应用程序来说是一个遗憾!我打算用一个隐藏的 UI 机制来解决这个问题,所以这不是一个大问题。

于 2013-05-18T03:02:01.377 回答
0

我尝试了上述步骤(通过 paniniluncher),但收到以下消息:

Google Play services out of date. Requires 3025100 but found 2012110

我收到此消息是因为我需要上述文件的不同版本。为了解决这个问题,我首先卸载了上面提到的文件,下载了我需要的版本(如以下 StackOverflow 帖子中所引用的:

Google Play 服务已过时。需要 3025100 但找到 2012110

然后使用 `adb -e install [path-to-APK-file] 安装这些文件,然后重新启动模拟器,它运行良好!

于 2013-04-08T04:16:52.930 回答
0

我已经在Stack Overflow question Trouble using Google sign-in button in emulator的回答中回答了这个问题。它仅适用于 Android 4.2.2,但允许您在 AVD 中使用“Intel Atom (x86)”。

我认为让它适用于其他版本的 Android 很容易。只需找到正确的文件。

于 2014-01-30T18:20:15.193 回答