Когда эмулятор всё-таки запустился |
Почему Google не исправляет этот баг я не знаю. Он был записан ещё в 15 году, а я пишу эти строки в 17. 2017, если это важно, а то выяснится, что в 3017 баг всё ещё воспроизводится.
Перво-наперво нужно убедиться, что у вас ровно та же самая проблема, что и у тысяч других людей. Для этого запустите эмулятор руками. Если с этим сложности, то вот по шагам:
- В IDE жмём Tools → Android → AVD Manager
- Для любой из виртуалок в Action жмём чёрный треугольник вниз (т.е. не тот, который Play) и в выпадающем меню выбираем «Show on disk»
- Поднимаемся на уровень выше и копируем название эмулятора. Можно и не подниматься, название написано в пути, но лично мне удобнее стать курсором на ini и нажать F2. В моём случае эмулятор называется «Nexus_5X_API_25». Обращаю внимание, копировать нужно без расширения
- Теперь добираемся до утилиты, запускающей эмулятор. Если путь у вас не прописан в PATH, то:
- В Студии/Идее жмём снова Tools → Android, только теперь SDK Manager
- Из Android SDK Location копируем путь
- Запускаем терминал, переходим в каталог. Для меня это «cd /usr/lib/android-sdk»
- Теперь запускаем эмулятор:
umnik@um:/usr/lib/android-sdk$ ./emulator/emulator @Nexus_5X_API_25
где пути дальше ваши. Суть в том, что название эмулятора передаётся как параметр через @. На самом деле можно «-avd», но мне так удобнее. - Если вы получили что-то вроде этого:
Cannot launch AVD in emulator. Output: libGL error: unable to load driver: radeonsi_dri.so libGL error: driver pointer missing libGL error: failed to load driver: radeonsi libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast X Error of failed request: GLXBadContext Major opcode of failed request: 155 (GLX) Minor opcode of failed request: 6 (X_GLXIsDirect) Serial number of failed request: 49 Current serial number in output stream: 48 libGL error: unable to load driver: radeonsi_dri.so libGL error: driver pointer missing libGL error: failed to load driver: radeonsi libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast X Error of failed request: GLXBadContext Major opcode of failed request: 155 (GLX) Minor opcode of failed request: 6 (X_GLXIsDirect) Serial number of failed request: 49 Current serial number in output stream: 48 libGL error: unable to load driver: radeonsi_dri.so libGL error: driver pointer missing libGL error: failed to load driver: radeonsi libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 155 (GLX) Minor opcode of failed request: 24 (X_GLXCreateNewContext) Value in failed request: 0x0 Serial number of failed request: 33 emulator: WARNING: VM heap size set below hardware specified minimum of 228MB emulator: WARNING: Setting VM heap size to 384MB Current serial number in output stream: 34 QObject::~QObject: Timers cannot be stopped from another thread
- Теперь попробуем сделать тоже самое, но с параметром -use-system-libs. То есть, в моём случае, это выглядит так:
umnik@um:/usr/lib/android-sdk$ ./emulator/emulator @Nexus_5X_API_25 -use-system-libs
Если эмулятор запустился, то мы в шаге от решения проблемы - Осталось добавить перменную окружения. Я использовал редактор nano, но вы можете использовать любой другой:
umnik@um:/usr/lib/android-sdk$ nano ${HOME}/.profile
- В самый конец добавляем свою переменную:
export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1
- Перезапускаем сеанс
Комментариев нет:
Отправить комментарий