L'émulateur Android Studio n'est pas fourni avec Play Store pour API 23

j'ai sélectionné cet émulateur à partir de la nouvelle version D'Android Studio AVD.

Google API

j'ai sélectionné la dernière version de l'API android 23. Parce qu'il est dit "avec Google APIs", j'ai pensé qu'il inclurait en fait toutes les applications Google, y compris Play Store afin que je puisse installer des applications comme Facebook.

j'ai vu d'autres fils sur SO qui semble être périmé maintenant ( comment installer l'application Google Play dans L'émulateur Android Studio? ), celui-ci donne des instructions pour installer googleapps basé sur des paquets universels, mais il ne va Jusqu'à Android 4.3 API 18: http://wiki.rootzwiki.com/Google_Apps#Universal_Packages_2

je voudrais celui pour API 23. Y a-t-il un moyen d'installer le paquet Googleapps sur l'émulateur?

Il semble étrange que l'officiel l'émulateur android n'est pas standard avec toutes les applications google...Cela ne semble pas très favorable à google et est-ce que cela signifie que les développeurs devront acheter des appareils réels à développer pour API 23?

80
demandé sur Community 2015-12-15 17:35:04

8 réponses

j'ai dû faire cela récemment sur L'émulateur API 23, et j'ai suivi ce guide . Cela fonctionne pour L'émulateur API 23, donc vous ne devriez pas avoir de problème.

Note: Tout le mérite revient à l'auteur du billet de blog relié (pyoor). Je le poste juste ici au cas où le lien casse pour n'importe quelle raison.

....

télécharger le paquet GAPPS

Ensuite, nous devons retirez le paquet Googleapps correspondant à notre version AVD Android. Dans ce cas, nous utiliserons le 'gapps-lp-20141109-signed.zip'. Vous pouvez télécharger ce fichier à partir de BasketBuild ici .

[pyoor@localhost]$ md5sum gapps-lp-20141109-signed.zip
367ce76d6b7772c92810720b8b0c931e gapps-lp-20141109-signed.zip

afin d'installer Google Play, nous aurons besoin de pousser les 4 apk suivants à notre AVD (situé dans ./ system / priv-app/):

GmsCore.apk, Googleservicesfram Framework.apk, GoogleLoginService.apk, Phonesky.apk

[pyoor@localhost]$ unzip -j gapps-lp-20141109-signed.zip \
system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk \
system/priv-app/GoogleLoginService/GoogleLoginService.apk \
system/priv-app/Phonesky/Phonesky.apk \
system/priv-app/GmsCore/GmsCore.apk -d ./

Pousser les Apk sur l'Émulateur

avec nos APK extraits, lançons notre AVD en utilisant la commande suivante.

[pyoor@localhost tools]$ ./emulator @<YOUR_DEVICE_NAME> -no-boot-anim

Cela peut prendre plusieurs minutes la première fois que l'AVD est créé. Une fois démarré, nous devons remonter la partition système AVDs en lecture/écriture afin de pouvoir pousser nos paquets sur le périphérique.

[pyoor@localhost]$ cd ~/android-sdk/platform-tools/
[pyoor@localhost platform-tools]$ ./adb remount

ensuite, poussez les APK de notre AVD:

[pyoor@localhost platform-tools]$ ./adb push GmsCore.apk /system/priv-app/
[pyoor@localhost platform-tools]$ ./adb push GoogleServicesFramework.apk /system/priv-app/
[pyoor@localhost platform-tools]$ ./adb push GoogleLoginService.apk /system/priv-app/
[pyoor@localhost platform-tools]$ ./adb push Phonesky.apk /system/priv-app

Profit!

et enfin, redémarrer l'émulateur en utilisant les commandes suivantes:

[pyoor@localhost platform-tools]$ ./adb shell stop && ./adb shell start

une fois que L'émulateur redémarre, nous devrions voir le paquet Google Play apparaître dans le menu lanceur. Après avoir associé un compte Google avec cet AVD, nous avons maintenant une version entièrement fonctionnelle de Google Play fonctionnant sous notre émulateur.

48
répondu Andy Shephard 2017-05-13 21:00:16

Ci-dessous est la méthode qui a fonctionné pour moi sur API 23-25 émulateurs. L'explication est fournie pour L'API 24 mais fonctionne de façon presque identique pour les autres versions.

crédits : Jon Doe. , zaidorx , pjl .

Chaud des conseils pour les lecteurs: s'il vous plaît aller sur les étapes avant de les suivre, car certains sont automatisés via des scripts fournis.


  1. dans le gestionnaire AVD D'Android studio (testé sur v2.2.3), Créer un nouvel émulateur avec la cible" Android 7.0 (Google APIs)": AVD screen after creating the emulator.

  2. télécharger le dernier paquet Open GApps pour l'architecture de l'émulateur (CPU/ABI). Dans mon cas, c'était x86_64 , mais ça peut être autre chose selon votre choix d'image pendant l'assistant de création de périphérique. Fait intéressant, l'architecture semble plus importante que la version Android correcte (c.-à-d. gapps pour 6.0 fonctionne également sur un émulateur 7.0).

  3. extraire les fichiers .apk en utilisant les chemins suivants (relatifs à open_gapps-x86_64-7.0-pico-201#####.zip ):

    .zip\Core\gmscore-x86_64.tar.lz\gmscore-x86_64\nodpi\priv-app\PrebuiltGmsCore\
    .zip\Core\gsfcore-all.tar.lz\gsfcore-all\nodpi\priv-app\GoogleServicesFramework\
    .zip\Core\gsflogin-all.tar.lz\gsflogin-all\nodpi\priv-app\GoogleLoginService\
    .zip\Core\vending-all.tar.lz\vending-all\nodpi\priv-app\Phonesky\
    

    notez que les applications ouvertes utilisent la compression Lzip, qui peut être ouverte en utilisant l'un ou l'autre des outils présents sur le site Web de Lzip. 1 , 2 , ou sur Mac en utilisant homebrew: brew install lzip . Puis par exemple lzip -d gmscore-x86_64.tar.lz .

    je fournis un fichier par lot qui utilise 7z.exe et lzip.exe pour extraire tout nécessaire .apk s automatiquement (sous Windows):

    @echo off
    echo.
    echo #################################
    echo Extracting Gapps...
    echo #################################
    7z x -y open_gapps-*.zip -oGAPPS
    
    echo Extracting Lzips...
    lzip -d GAPPS\Core\gmscore-x86_64.tar.lz
    lzip -d GAPPS\Core\gsfcore-all.tar.lz
    lzip -d GAPPS\Core\gsflogin-all.tar.lz
    lzip -d GAPPS\Core\vending-all.tar.lz
    
    move GAPPS\Core\*.tar
    
    echo. 
    echo #################################
    echo Extracting tars...
    echo #################################
    
    7z e -y -r *.tar *.apk
    
    echo.
    echo #################################
    echo Cleaning up...
    echo #################################
    rmdir /S /Q GAPPS
    del *.tar
    
    echo.
    echo #################################
    echo All done! Press any key to close.
    echo #################################
    pause>nul
    

    pour utiliser ceci, enregistrez le script dans un fichier (par exemple unzip_gapps.bat ) et mettez tout ce qui est pertinent dans un dossier, comme démontré ci-dessous: What it should look like...

  4. mettre à jour le binaire su pour être en mesure de modifier les permissions des fichiers que nous allons télécharger plus tard. Un nouveau su binaire peut être trouvé dans le SuperSU par Chainfire package Récupération "flashable" zip . Obtenir le zip, extraire quelque part, créer un fichier batch avec le contenu suivant dans le même dossier, et enfin de l'exécuter:

    adb root
    adb remount
    
    adb push eu.chainfire.supersu_2.78.apk /system/app/
    adb push x64/su /system/xbin/su
    adb shell chmod 755 /system/xbin/su
    
    adb shell ln -s /system/xbin/su /system/bin/su
    adb shell "su --daemon &"
    adb shell rm /system/app/SdkSetup.apk
    
  5. mettez tous les fichiers .apk dans un dossier et créez un fichier par lot avec ces contenus 3 :

    START /B E:\...\android-sdk\tools\emulator.exe @Nexus_6_API_24 -no-boot-anim -writable-system
    adb wait-for-device
    adb root
    adb shell stop
    adb remount
    adb push PrebuiltGmsCore.apk /system/priv-app/PrebuiltGmsCore
    adb push GoogleServicesFramework.apk /system/priv-app/GoogleServicesFramework
    adb push GoogleLoginService.apk /system/priv-app/GoogleLoginService
    adb push Phonesky.apk /system/priv-app/Phonesky/Phonesky.apk
    adb shell su root "chmod 777 /system/priv-app/**"
    adb shell su root "chmod 777 /system/priv-app/PrebuiltGmsCore/*"
    adb shell su root "chmod 777 /system/priv-app/GoogleServicesFramework/*"
    adb shell su root "chmod 777 /system/priv-app/GoogleLoginService/*"
    adb shell su root "chmod 777 /system/priv-app/Phonesky/*"
    adb shell start
    

    notez que le chemin E:\...\android-sdk\tools\emulator.exe doit être modifié en fonction de l'emplacement du SDK Android sur votre système.

  6. exécutez le fichier batch ci-dessus (la console devrait ressembler à ceci par la suite):

    O:3>START /B E:\...\android-sdk\tools\emulator.exe @Nexus_6_API_24 -no-boot-anim -writable-system
    
    O:3>adb wait-for-device
    Hax is enabled
    Hax ram_size 0x60000000
    HAX is working and emulator runs in fast virt mode.
    emulator: Listening for console connections on port: 5554
    emulator: Serial number of this emulator (for ADB): emulator-5554
    
    O:3>adb root
    
    O:3>adb shell stop
    
    O:3>adb remount
    remount succeeded
    
    O:3>adb push PrebuiltGmsCore.apk /system/priv-app/PrebuiltGmsCore/
    [100%] /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk
    
    O:3>adb push GoogleServicesFramework.apk /system/priv-app/GoogleServicesFramework/
    [100%] /system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk
    
    O:3>adb push GoogleLoginService.apk /system/priv-app/GoogleLoginService/
    [100%] /system/priv-app/GoogleLoginService/GoogleLoginService.apk
    
    O:3>adb push Phonesky.apk /system/priv-app/Phonesky/Phonesky.apk
    [100%] /system/priv-app/Phonesky/Phonesky.apk
    
    O:3>adb shell su root "chmod 777 /system/priv-app/**"
    
    O:3>adb shell su root "chmod 777 /system/priv-app/PrebuiltGmsCore/*"
    
    O:3>adb shell su root "chmod 777 /system/priv-app/GoogleServicesFramework/*"
    
    O:3>adb shell su root "chmod 777 /system/priv-app/GoogleLoginService/*"
    
    O:3>adb shell su root "chmod 777 /system/priv-app/Phonesky/*"
    
    O:3>adb shell start
    
  7. lorsque l'émulateur charge - fermez-le, supprimez le dispositif virtuel et créez-en un autre en utilisant la même image système . Cela corrige le magasin de jeu insensible app, "Google Play Services a cessé" et des problèmes similaires. Cela fonctionne parce que dans les étapes précédentes nous avons effectivement modifié l'image du système lui-même (jetez un oeil à la Date de modification sur android-sdk\system-images\android-24\google_apis\x86_64\system.img ). Cela signifie que chaque appareil créé à partir de maintenant avec l'image du système aura gapps installé!

  8. Démarrer la nouvelle AVD. Si le chargement prend un temps inhabituellement long, fermez-le et démarrez-le.

    START /B E:\...\android-sdk\tools\emulator.exe @Nexus_6_API_24
    adb wait-for-device
    adb shell "su --daemon &"
    

    après le début de L'AVD, vous verrez l'image ci - dessous-notez l'icône Play Store dans le coin!

First boot with Play Store installed.


3 - Je ne suis pas sûr que toutes ces commandes soient nécessaires, et peut-être que certaines d'entre elles sont exagérées... il semble de travail - qui est ce qui compte. :)

46
répondu Dev-iL 2017-05-23 12:10:08

maintenant il n'y a plus besoin de charger de côté des paquets d'exécuter des scripts pour obtenir le Play Store sur l'émulateur. À partir de Android Studio 2.4 maintenant, vous pouvez créer un AVD qui a Play Store pré-installé sur elle. Actuellement, il n'est pris en charge que sur les images du système AVDS sous Android 7.0 (API 24).

Source Officielle

AVD with Play Store

Note: les périphériques compatibles sont signalés par la nouvelle colonne Play Store.

33
répondu Prerak Sola 2017-04-19 07:37:04

souhaité commenter la dernière réponse, mais sans connexion, il est seulement possible de faire une réponse:

Pour se débarrasser de la "lecture seule erreur" juste arrêter l'appareil immédiatement après qu'il est prêt. Mon script se présente comme suit:

#!/bin/bash 
~/bin/AndroidSdk/tools/emulator @Nexus_6P_API_23 -no-boot-anim &
adb wait-for-device
adb shell stop
adb remount
adb push GmsCore.apk /system/priv-app
adb push GoogleServicesFramework.apk /system/priv-app
adb push GoogleLoginService.apk /system/priv-app
adb push Phonesky.apk /system/priv-app
adb shell start
22
répondu Jon Doe 2016-07-12 19:14:07

passer à http://opengapps.org / et télécharger la version pico de votre plate-forme et la version android. Décompresser le dossier téléchargé pour obtenir

1. GmsCore.apk

2. Googleservicesfram framework.apk

3. GoogleLoginService.apk

4. Phonesky.apk

localisez votre émulateur.EXE. Vous le trouverez probablement dans

C:\Users\ < YOUR_USER_NAME>\AppData\Local\Android\sdk\tools

Exécuter la commande:

l'émulateur avd -netdelay aucun -netspeed complet -pas-boot-anim -écriture-système

Note: utiliser-writable-system pour démarrer votre émulateur avec l'image système writable.

alors,

ADB root

adb remount

ADB push / system / priv-app

ADB push < PATH_TO Googleservicesfram Framework.apk > / system / priv-app

ADB push / system / priv-app

ADB push / system / priv-app

ensuite, redémarrez l'émulateur

adb shell stop

adb shell de démarrage

pour vérifier l'exécution,

adb shell pm liste des paquets et vous trouverez com.Google.Android.gms package pour google

2
répondu Saini Arun 2017-10-24 11:54:05

à partir de Maintenant, L'installation des APK dans le répertoire /system semble fonctionner avec la commande adb push .

un service caché refondait automatiquement le répertoire /system en mode read-only .

de N'importe quelle façon j'ai pu installer le magasin de jeu dans une machine virtuelle normale ( c.-à-d., Non-machine virtuelle de L'Api Google ) en montant simplement le fichier system.img de mon OS et en copiant sur les fichiers.

# To be executed as root user in your Unix based OS
mkdir sys_temp
mount $SDK_HOME/system-images/android-23/default/x86/system.img sys_temp -o loop
cp Phonesky.apk GmsCore.apk GoogleLoginService.apk GoogleServicesFramework.apk ./sys_temp/priv-app/
umount sys_temp
rmdir sys_temp

les fichiers APK peuvent être extraits de n'importe quel appareil Android fonctionnant avec Googleapps en utilisant la commande adb pull 151990920"

[ pour obtenir le chemin exact des apks, nous pouvons utiliser la commande pm list packages -f à l'intérieur de la commande adb shell ]

1
répondu harish2704 2016-10-25 04:57:49

voici le script que j'ai utilisé sur linux pour une instance Nexus 5 API 24 x86 sans GoogleApis.

#!/bin/sh

~/Android/Sdk/tools/emulator @A24x86 -no-boot-anim -writable-system & #where A24x86 is the name i gave to my instance
~/Android/Sdk/platform-tools/adb wait-for-device
~/Android/Sdk/platform-tools/adb root
~/Android/Sdk/platform-tools/adb shell stop
~/Android/Sdk/platform-tools/adb remount
~/Android/Sdk/platform-tools/adb push ~/gapps/PrebuiltGmsCore.apk /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk
~/Android/Sdk/platform-tools/adb push ~/gapps/GoogleServicesFramework.apk /system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk
~/Android/Sdk/platform-tools/adb push ~/gapps/GoogleLoginService.apk /system/priv-app/GoogleLoginService/GoogleLoginService.apk
~/Android/Sdk/platform-tools/adb push ~/gapps/Phonesky.apk /system/priv-app/Phonesky/Phonesky.apk
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/PrebuiltGmsCore /system/priv-app/GoogleServicesFramework"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/GoogleLoginService /system/priv-app/Phonesky"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/GoogleLoginService/GoogleLoginService.apk"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/Phonesky/Phonesky.apk"
~/Android/Sdk/platform-tools/adb shell start

celui-ci l'a fait pour moi.

IMPORTANT: afin d'empêcher l'application de s'écraser, n'oubliez pas d'accorder à google play services les autorisations de localisation.

Configuration - > Apps - >Config (Gear icon) - >permissions de L'Application - >Location - >(en haut à droite menú)->Show system->Enable Google Play services

1
répondu Richard 2017-01-25 23:29:19

je veux juste ajouter une autre solution pour les utilisateurs natifs de React qui ont juste besoin de L'application Expo.

  1. installez le Expo app
  2. Ouvrir projet
  3. Click Device - > Open sur Android-dans cette étape Expo installera l'application Android expo et vous serez en mesure de l'ouvrir.
0
répondu chenop 2017-12-06 17:49:10