28

这个问题有很多变体,但大多数都非常古老,根本没有真正回答这个问题。我不是在问如何安装安装在 Studio 2.2 模拟器中的 Play Services。

问题是这些模拟器使用的是旧版本的 Play 服务。

当我运行一个使用 Firebase 来促进 Google 登录的测试应用程序时,我从 Nexus 5 API 23 模拟器得到这个警报对话框:

在此处输入图像描述

在我的登录活动的 onCreate 方法中,我有以下代码:

int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);

    switch(result) {
        case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
            Log.d(TAG,"SERVICE_VERSION_UPDATE_REQUIRED");
            break;
        case ConnectionResult.SUCCESS:
            Log.d(TAG, "Play service available success");
            break;
        default:
            Log.d(TAG, "unknown services result: " + result);

    }

这总是返回 SERVICE_VERSION_UPDATE_REQUIRED。

在警报对话框中单击更新不会执行任何我可以检测到的操作。在调试日志中,当播放服务启动失败时,我会收到此消息:

W/GooglePlayServicesUtil: Google Play services out of date.  Requires 9080000 but found 8489470

我的应用程序在真正的 Android 设备上运行良好。

我错过了什么简单的事情?

TIA

4

8 回答 8

21

这可能现在与这个问题无关,但想在这里发布以供将来的探险者使用,以便他们在海的尽头看到一些土地。我在运行 API 25 并尝试 Firebase 通知的 Nexus 5 x86 模拟器上一直在为这个过时的 Google Play 服务而苦苦挣扎。我正在使用需要 Google Play Services 10.0.1 的 Firebase 10.0.1。但是在我的模拟器上,我总是习惯于收到消息

W/GooglePlayServicesUtil:Google Play 服务已过期。需要 1008400 但找到 9874900

W/FA:服务连接失败:ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null}

我已经广泛搜索了一种在我的模拟器上更新 Google Play 服务的方法,但任何建议都没有奏效。最后,我尝试创建一个新的模拟器 Nexus 5 x86_64 和 API 24。瞧!!!它有 Google Play Services 10.0.1,我的应用程序现在可以运行了。

为什么 x86 映像没有最新的 Google Play Serviecs 并且不允许我以任何方式更新它,而 x86_64 映像具有最新的 Google Play 服务,这真的让我感到震惊。

希望这可以帮助那些在 Google Play 服务中苦苦挣扎的人。

于 2017-01-23T10:20:21.823 回答
8

至于我的情况,我尝试检查 Android Studio 以及 Google Play 服务的更新,然后重新启动 Android Studio。然后出现更新对话框,它允许我使用正确的 Google Play 服务版本更新模拟器图像。

在此处输入图像描述

等待更新完成,然后根据新更新的图像创建新的 AVD,一切顺利。

于 2016-11-10T10:02:25.047 回答
3

假设您使用的是 Android 的默认 AVD,而不是 Genymotion,您只需确保所有内容都已更新。

这对我有用。如果您使用的是当前版本的播放服务,9.6.1 或更高版本,请确保以下内容:

  1. 您的构建工具版本是 24.0.3 或更高版本
  2. 在 SDK 管理器(SDK 平台选项卡)中:
    • 如果测试 Nougat,您的模拟器使用的是 Google APIs System Image Revision 8 或更高版本(我使用的是“Google APIs Intel x86 Atom_64 System Image”)
    • Google APIs 已安装和更新(对我来说,“Google APIs, Android 24” - 修订版 1.0.0)
  3. 在 SDK 管理器(SDK 工具选项卡)中:
    • Android SDK 平台工具是 24.0.3 或更高版本
    • Android SDK 工具是 25.2.2 或更高版本
    • 已安装 Google Play 服务并使用 33 或更高版本
    • (可能是可选的)已安装 Google 存储库且版本为 36 或更高版本

在确保所有这些并重新启动 Android Studio 之后(因为安全总比抱歉好),制作一个新的 AVD。我主要使用以下设置: - Nougat (API 24) - ABI - x86_64 - Target - Android 7.0(使用 Google API)

这对我有用,因为我今天早上遇到了同样的问题,直到我更新了所有内容。祝你好运 :)

于 2016-10-06T17:51:33.577 回答
2

如果人们仍在寻找答案并且没有找到任何解决方案来修复或更新他们的模拟器上的 Google Play 服务,这就是帮助我的方法。我关注了多个建议获取最新 SDK 构建工具的 SO 帖子,但错过了一个非常重要的更新。也就是说,您必须从 SDK 平台更新/下载

Google Play Intel x86 Atom System Image

一张图片胜过千言万语:在此处输入图像描述

于 2017-09-20T17:32:41.637 回答
0

我不是在问如何安装安装在 Studio 2.2 模拟器中的 Play Services。

您似乎确实在询问如何更新它,在这种情况下,您确实需要知道如何安装它。

问题是这些模拟器使用的是旧版本的 Play 服务。

这就是错误所说的,是的。

可能性一:您的模拟器和/或 SDK 库已过时,您需要一个新的 AVD。

可能性二:去下载Play Services的最新APK并安装。例如,您可以使用adb它来安装它。Genymotion 将允许您通过将 APK 文件拖到模拟器上来安装它。

于 2016-06-26T16:31:28.437 回答
0

在我以(API 17)为例的这些答案中,此软件包仅适用于 Android 4.2.2 及更高版本。它会起作用。

让我们从启动 SDK 管理器开始。我们首先需要确保已安装 Android 4.2.2 (API 17) 及更高版本。

[shubham@localhost tools]$ ./android sdk

如果没有,请检查顶级元素“Android 4.2.2 (API 17)”,单击“安装 6 个软件包”,并接受许可协议。

设置图像

要为您的虚拟设备管理器获取正确的映像:

  • 打开 Android SDK 管理器
  • 打开群组 Android 4.2.2 (API 17)
  • 检查 Google API
  • 检查 ARM EABI v7a 系统映像

    [![Google Android sdk 必备工具][1]][1]

安装后,关闭 SDK 管理器并启动 AVD 管理器。在这里,我们需要创建一个新的 AVD,它利用 Android 4.2.2 平台并启用了快照,以便我们所做的任何更改都是持久的。

[shubham@localhost tools]$ ./android avd

接下来,我们需要下载相应的 Google Apps 包。使用 Android 4.2.2 (API 17) 及更高版本,我们必须根据以下链接使用适当的包。

[https://www.androidfilehost.com/?w=files&flid=5649][2]

下载后,解压缩存档。为了安装 Google Play,我们需要将以下 3 个 APK 推送到我们的 AVD(位于 ./system/app/ 中):

  • GoogleServicesFramework.apk
  • 谷歌登录服务.apk
  • 电话天空.apk

然而,在我们这样做之前,我们需要对我们的 AVD 做一些小的修改。让我们使用以下命令启动新创建的 AVD。请注意,我们指定的分区大小为 512MB。这是为了确保我们的 AVD 有足够的容量来安装 Google Play 商店及其依赖项。

[shubham@localhost tools]$ ./emulator -avd Test -partition-size 512 -no-boot-anim

首次创建 AVD 时,这可能需要几分钟时间。启动后,我们需要重新挂载 AVD 的分区并修改“/system/app/”的权限,因为这是我们的软件包将安装到的位置。

[shubham@localhost platform-tools]$ ./adb remount
[shubham@localhost platform-tools]$ ./adb shell chmod 777 /system/app

最后,我们可以将这些 APK 推送到我们的 AVD:

[shubham@localhost platform-tools]$ ./adb push ~/system/app/GoogleServicesFramework.apk /system/app/
[shubham@localhost platform-tools]$ ./adb push ~/system/app/GoogleLoginService.apk /system/app/
[shubham@localhost platform-tools]$ ./adb push ~/system/app/Phonesky.apk /system/app/

现在,如果你的模拟器和我的一样慢,安装包可能需要几分钟。如果启动器进程反复在您身上崩溃,您将知道安装是否尚未完成;)

几分钟后,我们应该会看到 Google Play 包出现在菜单启动器中。将 Google 帐户与此 AVD 相关联后,我们现在可以在您的模拟器下运行完整的 Google Play 版本。

请参考这个链接:[ http://www.flinkd.org/2013/12/installing-google-play-on-the-android-emulator-api-18/][3]

那应该做的工作。有关更多信息和教程,您可以观看这些视频教程:-[ https://www.youtube.com/watch?v=Nq5mng20PC8][4]

      [1]: http://i.stack.imgur.com/Xn2cX.png
      [2]: https://www.androidfilehost.com/?w=files&flid=5649
      [3]: http://www.flinkd.org/2013/12/installing-google-play-on-the-android-emulator-api-18/
      [4]: https://www.youtube.com/watch?v=Nq5mng20PC8
于 2016-07-03T09:58:07.783 回答
0

对我有用的是:

  1. 检查并安装任何新的更新。您特别希望确保安装的是最新版本的 Google Play 服务。此外,您可以在 SDK 管理器中检查您正在使用的 Google Play 服务的版本。

  2. 删除 AVD(Android 虚拟设备)管理器中的所有模拟器。

  3. 创建新的模拟器。

之后应该可以正常工作!

于 2018-05-03T17:25:32.187 回答
-5

API 25、Studio 2.2.3 存在相同问题,已解决换行问题

compile 'com.google.android.gms:play-services:10.2.0'

compile 'com.google.android.gms:play-services:9.8.0'

在 build.gradle(Module:app) 中,等待模拟器图像中 Google Play 服务的更新。

于 2017-02-23T09:08:39.220 回答