Ich habe diesen Emulator aus der neuesten Version von Android Studio AVD ausgewählt.
Ich habe die neueste Version der Android-API 23 ausgewählt. Da dort "mit Google APIs" steht, dachte ich, dass sie tatsächlich alle Google-Apps einschließlich des Play Store enthalten würde, damit ich Apps wie Facebook installieren kann.
Ich habe andere Threads auf SO gesehen, die jetzt veraltet zu sein scheinen ( Wie installiere ich die Google Play-App im Android Studio-Emulator? ). Dieser enthält Anweisungen zum Installieren von Google-Apps auf Basis universeller Pakete, geht jedoch nur bis zur Android 4.3-API 18: http://wiki.rootzwiki.com/Google_Apps#Universal_Packages_2
Ich möchte die für API 23. Gibt es eine Möglichkeit, das Google Apps-Paket auf dem Emulator zu installieren?
Es scheint seltsam, dass der offizielle Android-Emulator nicht bei allen Google Apps Standard ist ... Dies scheint Google nicht sehr zu unterstützen und würde möglicherweise bedeuten, dass Entwickler tatsächliche Geräte kaufen müssen, um für API 23 zu entwickeln ?
Antworten:
Ich musste dies kürzlich auf dem API 23-Emulator tun und habe diese Anleitung befolgt . Es funktioniert für den API 23-Emulator, sodass Sie kein Problem haben sollten.
Hinweis: Alle Gutschriften gehen an den Autor des verlinkten Blogposts (pyoor). Ich poste es nur hier, falls der Link aus irgendeinem Grund unterbrochen wird.
....
Laden Sie das GAPPS-Paket herunter
Als Nächstes müssen wir das entsprechende Google Apps-Paket herunterladen, das unserer Android AVD-Version entspricht. In diesem Fall verwenden wir das Paket 'gapps-lp-20141109-signed.zip'. Sie können diese Datei von BasketBuild hier herunterladen .
Um Google Play zu installieren, müssen wir die folgenden 4 APKs auf unsere AVD übertragen (unter ./system/priv-app/):
GmsCore.apk, GoogleServicesFramework.apk, GoogleLoginService.apk, Phonesky.apk
Schieben Sie APKs zum Emulator
Nachdem unsere APKs extrahiert wurden, starten wir unsere AVD mit dem folgenden Befehl.
Dies kann beim ersten Erstellen der AVD einige Minuten dauern. Nach dem Start müssen wir die AVD-Systempartition erneut als Lese- / Schreibzugriff bereitstellen, damit wir unsere Pakete auf das Gerät übertragen können.
Als nächstes schieben Sie die APKs auf unsere AVD:
Profitieren!
Starten Sie den Emualator schließlich mit den folgenden Befehlen neu:
Nach dem Neustart des Emulators sollte das Google Play-Paket im Menü-Starter angezeigt werden. Nachdem wir dieser AVD ein Google-Konto zugeordnet haben, läuft jetzt eine voll funktionsfähige Version von Google Play unter unserem Emulator.
quelle
Nachfolgend finden Sie die Methode, die bei API 23-25- Emulatoren für mich funktioniert hat . Die Erklärung wird für API 24 bereitgestellt, funktioniert jedoch für andere Versionen fast identisch.
Credits : Jon Doe , zaidorx , pjl .
Erstellen Sie im AVD-Manager von Android Studio (getestet in Version 2.2.3) einen neuen Emulator mit dem Ziel "Android 7.0 (Google APIs)":
Laden Sie das neueste Open GApps- Paket für die Emulatorarchitektur (CPU / ABI) herunter . In meinem Fall war es das
x86_64
, aber es kann etwas anderes sein, abhängig von Ihrer Bildauswahl während des Assistenten zur Geräteerstellung. Interessanterweise scheint die Architektur wichtiger zu sein als die richtige Android-Version (dh Gapps für 6.0 funktionieren auch auf einem 7.0-Emulator).Extrahieren Sie die
.apk
Dateien mithilfe der folgenden Pfade (relativ zuopen_gapps-x86_64-7.0-pico-201#####.zip
):Beachten Sie, dass Open GApps die Lzip-Komprimierung verwenden, die entweder mit dem Tool auf der Lzip-Website 1 , 2 oder auf einem Mac mit Homebrew geöffnet werden kann :
brew install lzip
. Dann zBlzip -d gmscore-x86_64.tar.lz
.Ich stelle eine Batch-Datei zur Verfügung, die alle erforderlichen s automatisch verwendet
7z.exe
undlzip.exe
extrahiert.apk
(unter Windows):Um dies zu verwenden, speichern Sie das Skript in einer Datei (z. B.
unzip_gapps.bat
) und legen Sie alles Relevante in einem Ordner ab, wie unten gezeigt:Aktualisieren Sie die
su
Binärdatei, um die Berechtigungen der Dateien ändern zu können, die wir später hochladen werden. Eine neuesu
Binärdatei finden Sie im SuperSU by Chainfire- Paket "Recovery flashable"zip
. Holen Sie sich die Zip-Datei, extrahieren Sie sie irgendwo, erstellen Sie eine Batch-Datei mit den folgenden Inhalten im selben Ordner und führen Sie sie schließlich aus:Legen Sie alle
.apk
Dateien in einem Ordner ab und erstellen Sie eine Batchdatei mit folgenden Inhalten 3 :Beachten Sie, dass der Pfad
E:\...\android-sdk\tools\emulator.exe
entsprechend dem Speicherort des Android SDK auf Ihrem System geändert werden sollte .Führen Sie die obige Batchdatei aus (die Konsole sollte danach so aussehen):
Wenn der Emulator geladen wird, schließen Sie ihn, löschen Sie das virtuelle Gerät und erstellen Sie ein neues mit demselben Systemabbild . Dies behebt die nicht reagierende Play Store-App "Google Play Services wurde gestoppt" und ähnliche Probleme. Dies funktioniert, weil wir in den vorherigen Schritten das System-Image selbst geändert haben (sehen Sie sich das Änderungsdatum an
android-sdk\system-images\android-24\google_apis\x86_64\system.img
). Dies bedeutet, dass auf jedem Gerät, das von nun an mit dem System-Image erstellt wurde, Gapps installiert sind!Starten Sie die neue AVD. Wenn das Laden ungewöhnlich lange dauert, schließen Sie es und starten Sie es stattdessen mit:
Nach dem Start der AVD sehen Sie das Bild unten - beachten Sie das Play Store-Symbol in der Ecke!
3 - Ich bin nicht sicher, ob all diese Befehle benötigt werden, und vielleicht sind einige davon übertrieben ... es scheint zu funktionieren - was zählt. :) :)
quelle
/system/app/SdkSetup.apk
es in meinem Bild nicht existierte. Vielen Dank, wurde verrückt, als ich versuchte, das herauszufinden!Jetzt müssen keine Pakete mehr geladen werden, um Skripte auszuführen, um den Play Store auf den Emulator zu bringen. Ab Android Studio 2.4 können Sie jetzt eine AVD erstellen, auf der der Play Store vorinstalliert ist. Derzeit wird es nur auf AVDs mit Android 7.0 (API 24) -Systemabbildern unterstützt.
Offizielle Quelle
Hinweis: Kompatible Geräte werden in der neuen Spalte "Play Store" gekennzeichnet.
quelle
Android 7.0 (Google Play)
, nicht nur Google APIs. Derzeit ist es nur für API 24 verfügbar, nicht für API 25. Sobald Sie das System-Image installiert haben, wird es auf der Registerkarte Empfohlen und nicht auf der Registerkarte x86-Images angezeigt.Wollte die letzte Antwort kommentieren, aber ohne Login ist es nur möglich, eine Antwort zu geben:
Um den "Nur-Lese-Fehler" zu beseitigen, stoppen Sie das Gerät sofort, nachdem es bereit ist. Mein Skript sieht wie folgt aus:
quelle
adb root
Zeile sollte unmittelbar nachadb wait-for-device
Zeile hinzugefügt werden, umRead-only file system
Fehler zu vermeiden .Hier ist das Skript, das ich unter Linux für eine Instanz Nexus 5 API 24 x86 OHNE GoogleApis verwendet habe.
Dieser hat es für mich getan.
WICHTIG: Um zu verhindern, dass die App abstürzt, müssen Sie die Standortberechtigungen für Google Play Services erteilen.
Konfiguration-> Apps-> Konfiguration (Zahnradsymbol) -> App-Berechtigungen-> Speicherort -> (Menü oben rechts) -> System anzeigen-> Google Play-Dienste aktivieren
quelle
Gehen Sie zu http://opengapps.org/ und laden Sie die Pico-Version Ihrer Plattform und Android-Version herunter. Entpacken Sie den heruntergeladenen Ordner, um
1. GmsCore.apk
2. GoogleServicesFramework.apk
3. GoogleLoginService.apk
4. Phonesky.apk zu erhalten
Suchen Sie dann Ihre emulator.exe. Sie finden es wahrscheinlich in
C: \ Users \ <IHR_BENUTZERNAME> \ AppData \ Local \ Android \ sdk \ tools
Führen Sie den folgenden Befehl aus:
emulator -avd <YOUR_EMULATOR'S_NAME> -netdelay none -netspeed full -no-boot-anim -writable-system
Hinweis: Verwenden Sie -writable-system, um Ihren Emulator mit einem beschreibbaren Systemabbild zu starten.
Dann
adb root
adb remount
adb push <PATH_TO GmsCore.apk> / system / priv-app
adb push <PATH_TO GoogleServicesFramework.apk> / system / priv-app
adb push <PATH_TO GoogleLoginService.apk> / system / priv-app
adb push <PATH_TO Phonesky.apk> / system / priv-app
Starten Sie dann den Emulator neu.
Adb shell stop
adb shell start
Um die Ausführung zu überprüfen,
listet adb shell pm die Pakete auf und Sie finden das Paket com.google.android.gms für Google
quelle
Ab sofort
/system
scheint die Installation der Apks im Verzeichnis mit demadb push
Befehl zu funktionieren .Einige versteckte Dienste haben das
/system
Verzeichnis imread-only
Modus automatisch erneut bereitgestellt .Auf jede Art und Weise konnte ich den Play Store in einer normalen virtuellen Maschine (dh einer virtuellen Maschine ohne Google-Api) installieren, indem
system.img
ich die Datei einfach von meinem Betriebssystem aus mounte und über die Dateien kopierte.Die APK-Dateien können mit dem
adb pull
Befehl von jedem echten Android-Gerät abgerufen werden, auf dem Google Apps ausgeführt wird[Um den genauen Pfad der Apks zu erhalten, können wir den Befehl
pm list packages -f
in der ADB-Shell verwenden.]quelle
apk
s im/system
Verzeichnis vorhanden waren. Ich habe festgestellt, dass das Verschieben der einzelnenapk
s in einen richtigen Ordner nicht zu Schreibfehlern führt. Ich habe meine Antwort aktualisiert - könnten Sie versuchen, ob es jetzt für Sie funktioniert?Sie müssen lediglich die
config.ini
Datei für das Gerät aktualisieren und das Systemabbild erneut herunterladen.Aktualisieren Sie die folgenden Werte in
C:\Users\USER\.android\avd\DEVICE_ID\config.ini
(unter Windows) oder~/.android/avd/DEVICE_ID/config.ini
(unter Linux)Laden Sie dann das System-Image für das Gerät erneut von Android Studio> Tools> AVD Manager herunter
Das ist alles. Starten Sie Ihr Gerät neu und Sie haben den Play Store installiert.
Dies wurde auch hier beantwortet: Wie installiere ich die Google Play App im Android Studio Emulator?
quelle
Ich möchte nur eine weitere Lösung für React Native-Benutzer hinzufügen, die nur die Expo-App benötigen.
quelle
Auf einfache Weise gelöst: Sie sollten einen neuen Emulator erstellen, bevor Sie ihn zum ersten Mal öffnen. Befolgen Sie diese drei einfachen Schritte:
1- Gehen Sie zu C: \ Benutzer [Benutzer] .android \ avd [Ihr Ordner für virtuelle Geräte]. Öffnen Sie "config.ini" mit einem Texteditor wie dem Editor
2- ändern
"PlayStore.enabled = false" bis "PlayStore.enabled = true"
3- ändern
mage.sysdir.1 = Systembilder \ android-30 \ google_apis \ x86 \
zu
image.sysdir.1 = system-images \ android-30 \ google_apis_playstore \ x86 \
quelle