Эмулятор Pixel 2 / Виртуальное устройство отсутствует в списке устройств диспетчера AVD
Вопрос
Можно ли создавать виртуальное устройство Pixel 2 только через Android Studio (v3.1.4), а не через avdmanager?
Что мы хотим сделать
Используйте avdmanager для автоматического создания устройства Pixel 2 (скрипт непрерывной интеграции на основе avdmanger). Нам нужно явно использовать устройство pixel 2.
проблема
проведение $ANDROID_HOME/tools/bin/avdmanager list
не возвращает аппаратный профиль Pixel 2, но возвращает ошибку:
Parsing ****
Available Android Virtual Devices:
The following Android Virtual Devices could not be loaded:
Name: Pixel_2_API_28
Path: /home/user/.android/avd/Pixel_2_API_28.avd
Error: Google pixel_2 no longer exists as a device
Available devices definitions:
id: 0 or "tv_1080p"
Name: Android TV (1080p)
OEM : Google
Tag : android-tv
дополнительные детали
Мне пришлось выполнить следующую команду, чтобы выполнить команду avdmanager с JAVA 10.0.2 export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
, В противном случае я получаю сообщение об ошибке: " Не удалось установить android-sdk: "java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema"
3 ответа
Мне удалось найти описание Pixel 2, которое использует плагин Android Studio
com/android/sdklib/devices/nexus.xml
,
этот файл находится в
$ANDROID_HOME/plugins/android/lib/sdklib.jar
но я не смог понять, как получить avdmanager
загрузить тот же sdklib, который использует плагин Android Studio.
Я решил проблему с помощью
AndroidSDK/cmdline-tools/latest/bin/avdmanager
.
- Вы можете установить новые инструменты отсюда: https://developer.android.com/studio/command-line .
- или из Android Studio:
Старый
AndroidSDK/tools
папка устарела и больше не должна использоваться
Либо отредактируйте AVD
"s config.ini
- или измените его модель в AVD Manager
,
что осталось это:
id: 17 or "pixel"
Name: Pixel
OEM : Google
---------
id: 18 or "pixel_c"
Name: Pixel C
OEM : Google
---------
id: 19 or "pixel_xl"
Name: Pixel XL
OEM : Google
использование Java 10 не должно иметь большого значения, в то время как определение устройства больше не доступно.
если вы действительно настаиваете на Pixel 2; Вы можете добавить определение устройства в ~/.android/devices.xml
,