2016-09-17 10 views
1

Я не могу запустить какое-либо виртуальное устройство через AVD (Android Virtual Device Manager) в Linux, используя новейшие драйверы AMD AMDPP с открытым исходным кодом.Android Studio AVD Linux Драйвер AMDGPU

  • GPU: AMD Rx 460
  • CPU: Intel Core i5-4460 CPU @ 3.20GHz × 4
  • OS: Solus OS
  • Ядро: 4.7.4
  • Mesa: 12.0.3
  • AMDGPU: 1.1.1

сообщение об ошибке:

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: 153 (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: 153 (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: 153 (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 

Сообщение об ошибке в виде скриншота: avd amdgpu error

Я предполагаю, что проблема заключается в том, что он хочет старых драйверов с открытым исходным кодом под названием RadeonSI, но моя графическая карта не используется, что больше, он использует новую AMDGPU.

Любые советы, как я могу решить эту проблему?

ответ

8

Извините, что я ошибся. Это не вопрос AMDGPU.

Ранее была проблема с библиотеками, входящими в AVD.

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

Объяснение

~/Android/Sdk/tools/emulator это путь к SDK. Вы можете найти это внутри Android Studio: Файл -> Настройки -> Внешний вид & Поведение -> Настройки системы -> Android SDK

Nexus_5_API_23 - это ваше виртуальное устройство, которое вы должны создать в Android Studio. Вы можете найти список доступных устройств:

~/Android/Sdk/tools/emulator -avd -list-avds

И последнее: -use-system-libs использует системные библиотеки вместо комплекта


выше является временным решением. Постоянное решение, которое я нашел, вероятно, не так уж велико. Поэтому используйте это на свой страх и риск.

В вашем домашнем каталоге .bashrc (скрытый файл) установить переменную окружения:

export ANDROID_HOME=/path/to/your/android/sdk

Restart/выход из системы.

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

Очевидно убедитесь, что $ANDROID_HOME/tools/lib64/libstdc++ это правильный путь. Это будет зависеть от того, где вы извлекаете/перемещаете каталог sdk.

После этого все работало на меня.

Есть еще одно решение, которое выглядит более законным, но, к сожалению, не работает для меня.

export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

Issue on Google Bug Tracker