I want to use Google Play Services API in my application, but when I open the emulator to test my application it sends me a message that says "Google Play Services must be downloaded". I know that occurs because I coded this test in my MainActivity
in the method onResume()
.
I want to know how I can install Google Play Services in my emulator, because soon I will need to test my maps.
It is easy to install Google Play Store for API 24 and above as we can directly select an emulator that has Google Play from the AVD manager. For emulators using API 23 and below it becomes a bit tricky as we cannot directly install an emulator from Android Studio that has Google Play installed.
Run an app on the Android Emulator In Android Studio, create an Android Virtual Device (AVD) that the emulator can use to install and run your app.
Check out Setting Up Google Play Services which says:
To develop an app using the Google Play services APIs, you need to set up your project with the Google Play services SDK.
If you haven't installed the Google Play services SDK yet, go get it now by following the guide to Adding SDK Packages.
To test your app when using the Google Play services SDK, you must use either:
- A compatible Android device that runs Android 2.3 or higher and includes Google Play Store.
- The Android emulator with an AVD that runs the Google APIs platform based on Android 4.2.2 or higher.
For api 21+ you can use system image with Google Play as I describe below.
For api 19+ (Android 4.4 Kitkat) you can use system image x86 with Google Api (I was able to use it).
For api 17+ (Android 4.2.2) you can TRY to use system image ARM with Google Api (It didn't work for me).
I was able to install Google Play and Google Services as separate apks to pure system image api 16 and 17, but they don't really work after that (services crush and play not opens). So seems like it is not possible to make them work on pure AVD image because they should be installed with root access. The same for updating Google Services on AVD system image with Google API preinstalled - can't update because of incompatible certificates, can't uninstall even using adb because don't have access.
Now even better solution exist: using AVD image with build-in Google Play Services. It will enable you to use Google Services including Google Play. Also you will be able update it without re-creating AVD image.
Open AVD manager and choose create new device. You should use device definition with play store icon.
Then choose system image for it. You should choose one with Google Play and NOT with Google API.
Then launch new device.
You can update Play Services as shown on screenshot, or manually on device..
This is how you make Android Google Maps API v2 work on your emulator.
Create a new emulator
these are the settings that are working for me. I don't know for different ones.
Start the emulator
install com.android.vending-1.apk and com.google.android.gms-1.apk via ADB install command
The longer answer is on my blog post about this issue https://medium.com/nemanja-kovacevic/how-to-make-android-google-maps-v2-work-in-android-emulator-e384f5423723
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With