How to update Google Play Services for Android Stu

2020-01-27 07:30发布

There are a number of variations of this question, however most are very old, and don't really answer the question at all. I'm NOT asking how to install Play Services, that is installed in the Studio 2.2 emulators.

The problem is that these emulators are using an old version of Play services.

When I run a test app that uses Firebase to facilitate Google login I get this alert dialog from a Nexus 5 API 23 emulator:

enter image description here

In the onCreate method of my login activity I have this code:

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);

    }

This always returns SERVICE_VERSION_UPDATE_REQUIRED.

Clicking update in the alert dialog does nothing that I can detected. In the debug log I get this message when Play Services startup fails:

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

My application runs fine on a real Android device.

What simple thing am I missing?

TIA

8条回答
何必那么认真
2楼-- · 2020-01-27 07:50

This may not be relevant to this question now, but wanted to post it here for future explorers, so that they see some land at the end of the sea. I had been struggling with this out of date Google Play Service on my Nexus 5 x86 emulator running API 25 and trying Firebase notification. I am using Firebase 10.0.1 which needs Google Play Services 10.0.1. But on my emulator, I always used to get the message

W/GooglePlayServicesUtil: Google Play services out of date. Requires 1008400 but found 9874900

W/FA: Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null}

I had searched extensively a way to update the Google Play Services on my emulator, and whatever was suggested never worked. Finally, I tried creating a new emulator Nexus 5 x86_64 and API 24. Voila!!! It has Google Play Services 10.0.1 and my app works now.

It really beats me why the x86 image does not have the latest Google Play Serviecs and it does not allow me to update it in any manner, while the x86_64 image has the latest Google Play Services.

Hope this helps someone struggling with Google Play Services.

查看更多
Explosion°爆炸
3楼-- · 2020-01-27 08:05

In case people are still looking for an answer and haven't found any solution that fixes or updates the Google Play Services on their emulators, here's what helped me. I had followed multiple SO posts that recommend getting latest SDK build tools but missed a very important update. That is, from the SDK Platforms you must update/download

Google Play Intel x86 Atom System Image

A picture is worth a thousand words:enter image description here

查看更多
forever°为你锁心
4楼-- · 2020-01-27 08:07

I'm not asking how to install Play Services, that is installed in the Studio 2.2 emulators.

You do seem to be asking how to update it, in which case you do need to know how to install it.

The problem is that these emulators are using an old version of Play services.

That's what the error says, yes.

Possibility one: Your emulator and/or SDK library is outdated, and you need a new AVD.

Possibility two: Go download the latest APK for Play Services and install it. You can use adb to install it, for example. Genymotion will allow you to install APK files by dragging it onto the emulator.

查看更多
够拽才男人
5楼-- · 2020-01-27 07:51

As for my case, I tried checking for updates on Android Studio, as well as the Google Play Services, and restarted Android Studio. Then the update dialog appeared, which allows me to update the emulator images with the correct Google Play Services version.

enter image description here

Wait for the update to finish, then create new AVDs based on the newly updated images, and everything is good to go.

查看更多
倾城 Initia
6楼-- · 2020-01-27 08:04

Same problem with API 25, Studio 2.2.3, resolved changing line

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

to

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

in build.gradle(Module:app), while waiting for an update of Google Play Services in emulator images.

查看更多
Summer. ? 凉城
7楼-- · 2020-01-27 08:06

This packages will only work for Android 4.2.2 and higher in these answer i am taking an example of (API 17).and it will do work .

Let’s begin by launching the SDK manager. We will first need to ensure that Android 4.2.2 (API 17) and higher is installed.

[shubham@localhost tools]$ ./android sdk

If not, check the top level element, “Android 4.2.2 (API 17)”, click “Install 6 Packages”, and accept the license agreement.

Setting up the image

To get the right image for your virtual device manager:

  • Open the Android SDK Manager
  • Open the group Android 4.2.2 (API 17)
  • Check Google APIs
  • Check ARM EABI v7a System Image

    [![Google Android sdk required tool][1]][1]

Once installed, close the SDK manager and launch the AVD manager. Here we’ll need to create a new AVD which utilizes the Android 4.2.2 platform and has snapshots enabled so that any changes we make are persistent.

[shubham@localhost tools]$ ./android avd

Next we need to pull down the appropriate Google Apps package. Using Android 4.2.2 (API 17) and higher we must use the appropriate package according to below link.

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

Once downloaded, extract the archive. In order to install Google Play, we’ll need to push the following 3 APKs to our AVD (located in ./system/app/):

  • GoogleServicesFramework.apk
  • GoogleLoginService.apk
  • Phonesky.apk

However, before we do, we need to make some minor modifications to our AVD. Let’s launch the newly created AVD using the following command. Note that we’ve specified a partition size of 512MB. This is to ensure that our AVD has enough capacity to install the Google Play Store and its dependencies.

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

This may take several minutes the first time as the AVD is created. Once started we need to remount the AVD’s partition and modify the permissions of “/system/app/” as this is where our packages will be installed to.

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

And finally, we can push these APKs to our 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/

Now if your emulator is as slow as mine it may take a few minutes for the package to be installed. You’ll know if the installation hasn’t yet completed if the launcher process repeatedly crashes on you ;)

After a few minutes, we should see the Google Play package appear within the menu launcher. After associating a Google account with this AVD we now have a fully working version of Google Play running under your emulator.

Please refer to this link :[http://www.flinkd.org/2013/12/installing-google-play-on-the-android-emulator-api-18/][3]

That should do the work. For more information and tutorial you can watch these video tutorial :-[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
查看更多
登录 后发表回答