24 декабря 2017 г.

Запуск эмулятора Android под *buntu

Когда эмулятор всё-таки запустился
    Короткая специфичная запись, которая сможет помочь сберечь ваши нервы. Если в вашей Ubuntu/Kubuntu/Xubuntu/Mint/etc. не запускается Android Emulator из Android Studio или IntelliJ IDEA, эта запись должна вам помочь.
    Почему Google не исправляет этот баг я не знаю. Он был записан ещё в 15 году, а я пишу эти строки в 17. 2017, если это важно, а то выяснится, что в 3017 баг всё ещё воспроизводится.

    Перво-наперво нужно убедиться, что у вас ровно та же самая проблема, что и у тысяч других людей. Для этого запустите эмулятор руками. Если с этим сложности, то вот по шагам:
  1. В IDE жмём Tools → Android → AVD Manager
  2. Для любой из виртуалок в Action жмём чёрный треугольник вниз (т.е. не тот, который Play) и в выпадающем меню выбираем «Show on disk»
  3. Поднимаемся на уровень выше и копируем название эмулятора. Можно и не подниматься, название написано в пути, но лично мне удобнее стать курсором на ini и нажать F2. В моём случае эмулятор называется «Nexus_5X_API_25». Обращаю внимание, копировать нужно без расширения
  4. Теперь добираемся до утилиты, запускающей эмулятор. Если путь у вас не прописан в PATH, то:
    1. В Студии/Идее жмём снова Tools → Android, только теперь SDK Manager
    2. Из Android SDK Location копируем путь
  5. Запускаем терминал, переходим в каталог. Для меня это «cd /usr/lib/android-sdk»
  6. Теперь запускаем эмулятор:
    umnik@um:/usr/lib/android-sdk$ ./emulator/emulator @Nexus_5X_API_25
    где пути дальше ваши. Суть в том, что название эмулятора передаётся как параметр через @. На самом деле можно «-avd», но мне так удобнее.
  7. Если вы получили что-то вроде этого:
    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
  8. Теперь попробуем сделать тоже самое, но с параметром -use-system-libs. То есть, в моём случае, это выглядит так:
    umnik@um:/usr/lib/android-sdk$ ./emulator/emulator @Nexus_5X_API_25 -use-system-libs
    Если эмулятор запустился, то мы в шаге от решения проблемы
  9. Осталось добавить перменную окружения. Я использовал редактор nano, но вы можете использовать любой другой:
    umnik@um:/usr/lib/android-sdk$ nano ${HOME}/.profile
  10. В самый конец добавляем свою переменную:
    export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1
  11. Перезапускаем сеанс
    Теперь Студия/Идея будут запускать эмулятор!

Комментариев нет:

Отправить комментарий