Android Studio AVD Linux AMDGPU驱动程序
我无法通过Linux上的AVD(Android虚拟设备管理器)使用最新的开源AMD驱动程序AMDGPU启动任何虚拟设备。Android Studio AVD Linux AMDGPU驱动程序
- GPU:AMD的Rx 460
- CPU:英特尔Core i5-4460 CPU @ 3.20GHz×4
- OS:OS索卢斯
- 内核:4.7.4
- 梅萨: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。
任何提示我将如何解决这个问题?
对不起,我错了。这不是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
重启/注销。
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