2

最新のオープン ソース AMD ドライバー AMDGPU を使用して、Linux で AVD (Android Virtual Device Manager) 経由で仮想デバイスを起動できません。

  • GPU: AMD Rx 460
  • CPU: Intel 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 エラー

問題は、RadeonSI と呼ばれる古いオープン ソース ドライバーが必要なことだと思いますが、私のグラフィック カードはそれを使用しなくなり、新しい AMDGPU を使用します。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

9

すみません、間違っていました。AMDGPU の問題ではありませんでした。

これは、AVD バンドル ライブラリに関する既知の問題でした。

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

説明

~/Android/Sdk/tools/emulatorSDK へのパスです。Android Studio 内で見つけることができます: File -> Settings -> Appearance & Behavior -> System Settings -> 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

Google Bug Tracker の問題

于 2016-09-19T14:23:27.127 に答える