在Android模拟器上运行Google Maps v2

时间:2012-12-26 11:47:29

标签: android android-emulator avd android-maps-v2 google-play-services

我已尝试在我的Android应用程序中实施Google Maps v2,但遗憾的是,我收到此消息而不是地图:

This app won't run without Google Play services which are missing from your phone.

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

11 个答案:

答案 0 :(得分:30)

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

答案 1 :(得分:25)

对于已更新到最新版本的google-play-services_lib和/或出现此错误Google Play services out of date. Requires 3136100 but found 2012110的用户,com.google.android.gms.apk (Google Play Services 3.1.36)com.android.vending.apk (Google Play Store 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. 玩得开心!!!“
  5. 我发现这种方式最简单,最干净,并且与最新版本的软件配合使用,可以让您修复所有错误。

答案 2 :(得分:14)

请尝试以下方法。 It was successfully for me

步骤:

  1. 使用此配置创建新的模拟器: AVD configuration

  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. GoogleLoginService.apk
    2. GoogleServicesFramework.apk
    3. Phonesky.apk AKA Google Play商店,v.3.5.16
    4. Google Maps,v.6.14.1
    5. Google Play services,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. this link下载Google Play服务版本4,并从文件夹sdkmanager->extra->google play service下载。
  5. google-play-services_lib
  6. 导入androidsdk\extras\google\google_play_services
  7. 创建一个新项目并将上述项目作为库项目引用。
  8. 运行项目。

答案 3 :(得分:12)

我使用this guide在模拟器上成功安装了Google Maps v2 您应该执行以下步骤:

答案 4 :(得分:4)

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

Google Maps on Genymotion

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

答案 5 :(得分:2)

我可以让我的模拟器使用Google Map V.2(使用Google Play Service V.4)运行我的应用程序。我遵循了其他人提出的有些失败的步骤,但是我从中学到了它并且以某种方式使它工作。这是如何:

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

  2. 创建一个新的模拟器,或使用带有规范的现有模拟器:

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

  4. 将以下APK(每个4/2/2013通过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。如果是这种情况,请不要尝试单击更新按钮,因为它不会执行任何操作。我也得到了这个错误,我通过以下两个步骤解决了这个问题:

    • 清理重建 - 将我的应用重新安装到模拟器中
    • 关闭我的模拟器并重新启动它。
  7. 就是这样,它现在很有效。

答案 6 :(得分: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),则无需解决方法。它只是有效!

答案 7 :(得分:1)

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

页面 Ensure Devices Have the Google Play services APK 也可以提供帮助。

答案 8 :(得分:1)

我已在AndroVM虚拟机上成功运行了需要Google Maps API 2的应用。

AndroVM未附带Google地图或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 x.y.z.t”
  •   
  • 做“adb root”
  •   
  • 重新连接“adn connect x.y.z.t”
  •   
  • 做“adb remount”
  •   
  • 做“adb push system / / system /”
  •   
     

您的虚拟机将重启,您应该拥有Google应用,包括市场/播放。

     

您不会拥有某些Google Apps,例如Google地图,但可以下载它们   来自市场/游戏。

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

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

  • 非常优越的一般表现
  • OpenGL加速
  • Google Play支持

到目前为止,道路上唯一的缺点是缺少多点触控手势,对于地图应用来说这是一个无赖!我计划使用隐藏的UI机制解决这个问题,所以不是一个很大的问题。

答案 9 :(得分:0)

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

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

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

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

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

答案 10 :(得分:0)

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

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