Не удается запустить эмулятор на Linux (Ubuntu 15.10)

Я пытаюсь запустить эмулятор, но он выводит в журнал:

libGL error: unable to load driver: r600_dri.so libGL error: driver pointer missing libGL error: failed to load driver: r600 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: 47 Current serial number in output stream: 46 libGL error: unable to load driver: r600_dri.so libGL error: driver pointer missing libGL error: failed to load driver: r600 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: 47 Current serial number in output stream: 46 libGL error: unable to load driver: r600_dri.so libGL error: driver pointer missing libGL error: failed to load driver: r600 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 Current serial number in output stream: 34 QObject::~QObject: Timers cannot be stopped from another thread emulator: WARNING: Increasing RAM size to 1GB 

Как это исправить? Я читал темы с похожими ошибками, но это мне не помогает.

Взгляни на

https://code.google.com/p/android/issues/detail?id=197254

в частности, пункты № 3 и № 19. Это обходное решение, а не истинное решение, но оно снова заставило меня двигаться. Вам нужно будет настроить команду для:

  • расположение файла libstdc++.so.6 в вашей системе – я использовал locate libstdc++.so.6 чтобы найти это
  • путь к исполняемому эмулятору
  • имя вашего эмулятора

поэтому моя команда была

 LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' ~/Android/Sdk/tools/emulator -netdelay none -netspeed full -avd Nexus_5_API_21 

Затем запускается эмулятор, и вы можете выбрать его в диалоговом окне «Выбор устройства» при запуске приложения.

Использование libstdc ++. So.6, доступное в вашей системе, а не в комплекте с Android-файлом android, решает эту проблему.

  • Для этого эмулятор имеет переключатель -use-system-libs .

    ~/Android/Sdk/tools/emulator -avd Nexus_5_API_23 -use-system-libs

  • В качестве альтернативы вы можете установить ANDROID_EMULATOR_USE_SYSTEM_LIBS среды ANDROID_EMULATOR_USE_SYSTEM_LIBS в 1 для вашего пользователя / системы. Это позволяет убедиться, что эмулятор будет работать, даже если вы запустили его из Android Studio.

Подробнее: https://code.google.com/p/android/issues/detail?id=197254#c15

 $ cd Android/Sdk/emulator/lib64/libstdc++ $ mv libstdc++.so.6 libstdc++.so.6.bak $ ln -s /usr/lib64/libstdc++.so.6 

это сработало для меня

У меня аналогичная ошибка в 64-битном Ubuntu 16.04. Для меня ответ № 23 работает отлично https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter % 20Opened & GroupBy = & рода = & ID = 197254

 $ cd $ANDROID_HOME/android-sdk-linux_x86/tools/lib64/libstdc++ $ mv libstdc++.so.6 libstdc++.so.6.bak $ ln -s /usr/lib64/libstdc++.so.6 $ANDROID_HOME/android-sdk-linux_x86/tools/lib64/libstdc++ 

Используйте «Программное обеспечение» в опции «Эмулированная графика производительности» в настройках AVD. Очень простое решение.

я делаю это, и он работает

 cd ~/Android/Sdk/emulator/lib64/libstdc++ mv libstdc++.so.6 libstdc++.so.6.bak ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 

лучше найти свой системный файл libstdc ++. so.6 с помощью команды locate libstdc ++. so.6

И затем возьмите резервную копию файла sdk android sdk в файле ~ / Android / Sdk / tools / lib64 / libstdc ++ /

И создайте мягкую ссылку для libstdc ++. So.6 с тем же именем в указанном выше пути, заменив существующий, указав на файл по умолчанию в системе

Таким образом, нам не нужно перезапускать эмулятор каждый раз из командной строки.

Попробуйте изменить параметр графики в настройках эмулятора: введите описание изображения здесь

У меня также было много проблем для запуска AVD на моей машине. Борьба с использованием системных библиотек, создание символических ссылок для локальных библиотек и т. Д. …

Что действительно заставило меня работать, так это установить драйверы nvidia с

 sudo apt install nvidia-340 

Мой дистрибутив (заметьте, что я не использую Ubuntu 15.10):

 $ uname -a Linux ruapehu 4.4.0-38-generic #57-Ubuntu SMP Tue Sep 6 15:42:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ cat /etc/issue Ubuntu 16.04.1 LTS \n \l 

Убедитесь, что вы проверили подходящий для вас пакет nvidia, так как Ubuntu предлагает различные вкусы. Например:

 $ sudo apt list "nvidia-[0-9][0-9][0-9]" Listing... Done nvidia-304/xenial 304.131-0ubuntu3 amd64 nvidia-331/xenial 340.96-0ubuntu3 amd64 nvidia-340/xenial,now 340.96-0ubuntu3 amd64 [installed] nvidia-346/xenial 352.63-0ubuntu3 amd64 nvidia-352/xenial 361.42-0ubuntu2 amd64 nvidia-361/xenial,now 361.42-0ubuntu2 amd64 

Я проверил список в страtagsи снизу вверх, с 361 до тех пор, пока не нашел тот, который работал (340, в моем случае).

Надеюсь, это поможет.

В моем случае (Ubuntu 16.10 64-bit, Android Studio 2.3) библиотеки были расположены в другом месте. Таким образом, команды:

 /home/myusername/Android/Sdk/emulator/lib64/libstdc++ ➜ libstdc++ ll total 9,3M -rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6 -rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6.0.18 ➜ libstdc++ mv libstdc++.so.6 libstdc++.so.6.bak ➜ libstdc++ mv libstdc++.so.6.0.18 libstdc++.so.6.0.18.bak ➜ libstdc++ ln -s /usr/lib32/libstdc++.so.6 /home/myusername/Android/Sdk/emulator/lib64/libstdc++ ➜ libstdc++ ln -s /usr/lib32/libstdc++.so.6.0.22 /home/myusername/Android/Sdk/emulator/lib64/libstdc++ ➜ libstdc++ ll total 9,3M lrwxrwxrwx 1 myusername myusername 25 мар 29 13:18 libstdc++.so.6 -> /usr/lib32/libstdc++.so.6 -rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6.0.18.bak lrwxrwxrwx 1 myusername myusername 30 мар 29 13:19 libstdc++.so.6.0.22 -> /usr/lib32/libstdc++.so.6.0.22 -rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6.bak 

И теперь эмулятор запускается из AVD-менеджера нормально.

У меня были аналогичные проблемы с использованием i965_dri.so и swrast_dri.so , я не смог изменить графику программного обеспечения в графическом интерфейсе.

Поэтому я перешел в папку эмулятора ( Show on Disk в AVDM) и нашел config.ini

Здесь я просто изменил следующую строку, чтобы остановить использование GPU:

 hw.gpu.enabled=no 

Это исправлено в Android Emulator 27.2.9. См. Первое исправление, перечисленное здесь: https://developer.android.com/studio/releases/emulator#fixes

$ cd ~ / Android / Sdk / emulator / lib64 / libstdc ++ $ mv libstdc ++. so.6 libstdc ++. so.6.bak $ ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc ++. +0,6

Давайте будем гением компьютера.