Я выбрал этот эмулятор из последней версии Android Studio AVD.
Я выбрал последнюю версию Android API 23. Поскольку там написано «с API Google», я подумал, что он действительно будет включать все приложения Google, включая Play Store, чтобы я мог устанавливать приложения, такие как Facebook.
Я видел другие темы на SO, которые, похоже, сейчас устарели ( как установить приложение Google Play в эмуляторе Android Studio? ), Этот дает инструкции по установке приложений Google на основе универсальных пакетов, но он подходит только до Android 4.3 API 18: http://wiki.rootzwiki.com/Google_Apps#Universal_Packages_2
Мне нужен API 23. Есть ли способ установить пакет Google Apps на эмулятор?
Кажется странным, что официальный эмулятор Android не входит в стандартную комплектацию всех приложений Google в первую очередь ... Это не очень хорошо поддерживает Google и может означать, что разработчикам придется покупать реальные устройства для разработки для API 23 ?
Ответы:
Недавно мне пришлось сделать это на эмуляторе API 23, и я следовал этому руководству . Он работает с эмулятором API 23, так что у вас не должно возникнуть проблем.
Примечание: все заслуги принадлежат автору связанного сообщения в блоге (pyoor). Я просто выкладываю его сюда на случай, если ссылка по какой-либо причине оборвется.
....
Загрузите пакет GAPPS
Затем нам нужно загрузить соответствующий пакет Google Apps, который соответствует нашей версии Android AVD. В этом случае мы будем использовать пакет gapps-lp-20141109-signed.zip. Вы можете скачать этот файл из BasketBuild здесь .
[pyoor@localhost]$ md5sum gapps-lp-20141109-signed.zip 367ce76d6b7772c92810720b8b0c931e gapps-lp-20141109-signed.zip
Чтобы установить Google Play, нам нужно отправить следующие 4 APK на наш AVD (расположенный в ./system/priv-app/):
GmsCore.apk, GoogleServicesFramework.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 ./
Отправьте APK-файлы в эмулятор
После извлечения наших APK давайте запустим наш AVD, используя следующую команду.
[pyoor@localhost tools]$ ./emulator @<YOUR_DEVICE_NAME> -no-boot-anim
При первом создании AVD это может занять несколько минут. После запуска нам нужно перемонтировать системный раздел AVD для чтения / записи, чтобы мы могли отправить наши пакеты на устройство.
[pyoor@localhost]$ cd ~/android-sdk/platform-tools/ [pyoor@localhost platform-tools]$ ./adb remount
Затем вставьте APK в наш 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
Прибыль!
И, наконец, перезагрузите эмулятор с помощью следующих команд:
После перезапуска эмулятора мы должны увидеть, что пакет Google Play появится в панели запуска меню. После связывания учетной записи Google с этим AVD у нас теперь есть полностью рабочая версия Google Play, работающая под нашим эмулятором.
источник
Ниже приведен метод, который работал у меня на эмуляторах API 23-25 . Объяснение предоставляется для API 24, но работает почти идентично для других версий.
Кредиты : Джон Доу , zaidorx , pjl .
В диспетчере AVD студии Android (проверено на v2.2.3) создайте новый эмулятор с целью «Android 7.0 (Google API)»:
Загрузите последний пакет Open GApps для архитектуры эмулятора (CPU / ABI). В моем случае это было так
x86_64
, но это может быть что-то еще, в зависимости от вашего выбора изображения во время мастера создания устройства. Интересно, что архитектура кажется более важной, чем правильная версия Android (т.е. gapps для 6.0 также работают на эмуляторе 7.0).Извлеките
.apk
файлы, используя следующие пути (относительноopen_gapps-x86_64-7.0-pico-201#####.zip
):Обратите внимание , что Open GAPPS использовать сжатие Lzip, который может быть открыт с помощью либо инструмент на веб - сайте Lzip 1 , 2 , или на Mac с помощью доморощенного:
brew install lzip
. Тогда напримерlzip -d gmscore-x86_64.tar.lz
.Я предоставляю командный файл, который использует
7z.exe
и автоматическиlzip.exe
извлекает все необходимые файлы.apk
(в Windows):Чтобы использовать это, сохраните сценарий в файле (например
unzip_gapps.bat
) и поместите все необходимое в одну папку, как показано ниже:Обновите
su
двоичный файл, чтобы иметь возможность изменять права доступа к файлам, которые мы позже загрузим. Новыйsu
двоичный код может быть найден в SuperSU по Chainfire пакета «Recovery Flashable»zip
. Получите zip-архив, распакуйте его куда-нибудь, создайте пакетный файл со следующим содержимым в той же папке и, наконец, запустите его:Поместите все
.apk
файлы в одну папку и создайте пакетный файл с этим содержимым 3 :Обратите внимание, что путь
E:\...\android-sdk\tools\emulator.exe
должен быть изменен в соответствии с расположением Android SDK в вашей системе.Запустите указанный выше командный файл (после этого консоль должна выглядеть так):
Когда эмулятор загрузится - закройте его, удалите виртуальное устройство, а затем создайте другое, используя тот же образ системы . Это устраняет неотвечающее приложение Play Store, «Сервисы Google Play остановлены» и аналогичные проблемы. Это работает , потому что в предыдущих шагах мы фактически изменили самое образ системы (обратите внимание на дату изменений на
android-sdk\system-images\android-24\google_apis\x86_64\system.img
). Это означает, что на каждом устройстве, созданном с этого момента с помощью образа системы, будут установлены gapps!Запустите новый AVD. Если загрузка занимает необычно много времени, закройте его и вместо этого запустите, используя:
После запуска AVD вы увидите изображение ниже - обратите внимание на значок Play Store в углу!
3 - Я не уверен, что все эти команды нужны, и, возможно, некоторые из них излишни ... похоже, работает - вот что важно. :)
источник
/system/app/SdkSetup.apk
что не было в моем изображении. Большое спасибо, я сходил с ума, пытаясь решить эту проблему!Теперь нет необходимости загружать какие-либо пакеты для выполнения каких-либо скриптов, чтобы получить Play Store на эмуляторе. Начиная с Android Studio 2.4, теперь вы можете создать AVD с предустановленным Play Store. В настоящее время он поддерживается только на AVD с системными образами Android 7.0 (API 24).
Официальный источник
Примечание. Совместимые устройства обозначены в новом столбце Play Store.
источник
Android 7.0 (Google Play)
не только API Google. В настоящее время он доступен только для API 24, но не для API 25. После установки образа системы он появится на вкладке «Рекомендуемые», а не на вкладке «Изображения x86».Хотел прокомментировать последний ответ, но без входа в систему можно только ответить:
Чтобы избавиться от «ошибки только для чтения», просто остановите устройство сразу после его готовности. Мой сценарий выглядит следующим образом:
#!/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
источник
adb root
строка должна быть добавлена сразу послеadb wait-for-device
строки, чтобы предотвратитьRead-only file system
ошибку.Что вам нужно сделать, так это обновить
config.ini
файл для устройства и повторно загрузить образ системы.Обновите следующие значения в
C:\Users\USER\.android\avd\DEVICE_ID\config.ini
(в Windows) или~/.android/avd/DEVICE_ID/config.ini
(в Linux)PlayStore.enabled = true image.sysdir.1=system-images\android-27\google_apis_playstore\x86\ tag.display=Google Play tag.id=google_apis_playstore
Затем повторно загрузите образ системы для устройства из Android Studio> Инструменты> AVD Manager.
Это все. Перезагрузите устройство, и у вас будет установлен Play Store.
На это также ответили здесь: Как установить приложение Google Play в эмуляторе Android Studio?
источник
Решено простым способом: вам нужно создать новый эмулятор, прежде чем открывать его в первый раз, выполните следующие 3 простых шага:
1- перейдите в «C: \ Users [пользователь] .android \ avd [папка вашего виртуального устройства]» откройте «config.ini» с помощью текстового редактора, такого как блокнот
2- изменить
«PlayStore.enabled = false» на «PlayStore.enabled = true»
3- изменить
"mage.sysdir.1 = system-images \ android-30 \ google_apis \ x86"
к
"image.sysdir.1 = system-images \ android-30 \ google_apis_playstore \ x86"
источник
google_apis_playstore
изображение присутствовало, но в моем случае этого не было. Поэтому мне пришлось установить его после@Aamnah
ответа.google_apis_playstore
изображение вместе с ним, иди, почему ..Вот сценарий, который я использовал в Linux для экземпляра Nexus 5 API 24 x86 БЕЗ 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
Этот сделал это за меня.
ВАЖНО: чтобы предотвратить сбой приложения, не забудьте предоставить разрешения на определение местоположения сервисов Google Play.
Конфигурация-> Приложения-> Конфигурация (значок шестеренки) -> Разрешения приложений-> Местоположение -> (Верхнее правое меню) -> Показать систему-> Включить сервисы Google Play
источник
Перейдите на http://opengapps.org/ и загрузите пико-версию своей платформы и версию Android. Разархивируйте загруженную папку и получите
1. GmsCore.apk
2. GoogleServicesFramework.apk
3. GoogleLoginService.apk
4. Phonesky.apk.
Затем найдите свой emulator.exe. Вы, вероятно, найдете его в
C: \ Users \ <YOUR_USER_NAME> \ AppData \ Local \ Android \ sdk \ tools
Выполните команду:
emulator -avd <YOUR_EMULATOR'S_NAME> -netdelay none -netspeed full -no-boot-anim -writable-system
Примечание. Используйте -writable-system, чтобы запустить эмулятор с доступным для записи образом системы.
Затем
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
Затем перезагрузите эмулятор
adb shell stop
adb shell start
Чтобы проверить запуск,
adb shell pm list packages, и вы найдете пакет com.google.android.gms для Google
источник
На данный момент установка apks в
/system
каталог, похоже, работает с помощьюadb push
команды.Некоторая скрытая служба автоматически перемонтировала
/system
каталог вread-only
режиме.В любом случае мне удалось установить магазин Play на обычную виртуальную машину (т.е. виртуальную машину, отличную от Google-Api), просто подключив
system.img
файл из моей ОС и скопировав файлы.# 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
Файлы APK можно загрузить с любого реального устройства Android, на котором запущены Google Apps, с помощью
adb pull
команды[Чтобы получить точный путь к apks, мы можем использовать команду
pm list packages -f
внутри оболочки adb]источник
apk
s существовать в/system
каталоге. Я заметил, что перемещение каждого изapk
s в правильную папку не приводит к ошибкам записи. Я обновил свой ответ - не могли бы вы попробовать, работает ли он для вас сейчас?Просто хочу добавить еще одно решение для пользователей React Native, которым просто нужно приложение Expo.
источник