2016-09-17 85 views
1

我無法通過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。

任何提示我將如何解決這個問題?

回答

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

重啓/註銷。

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