エミュレータを起動しようとしましたが、ログに出力されます。
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
これでエミュレータが起動し、アプリを実行するときに[Device Chooser]ダイアログでそれを選択できます。
Android sdkにバンドルされているものの代わりにあなたのシステムで利用可能なlibstdc ++。so.6を使うことでこの問題は解決します。
エミュレータにはこれを行うためのスイッチ-use-system-libs
があります。
~/Android/Sdk/tools/emulator -avd Nexus_5_API_23 -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
それは私のために働いた
私はUbuntu 16.04 64ビットで同様のエラーがあります。私のために答え#23解決策はうまくいく https://code.google.com/p/Android/issues/detail?can 2&start = 0#= 100&q =&colspec = ID%20ステータス%20優先度%20所有者%20要約%20初期設定%20レポーター%20オープン&groupby =&sort =&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設定のEmulated Performance Graphicsオプションで "Software"を使用してください。非常に単純な解決策.
私はこれをやって、それは働いています
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
コマンドlocate libstdc ++。so.6を使用して、システムのデフォルトのlibstdc ++。so.6を見つけてください。
それから〜/ Android/Sdk/tools/lib64/libstdc ++ /にあるファイルのAndroid SDKバージョンのバックアップを取ります。
そして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
Ubuntuはさまざまなフレーバーを提供しているので、自分に適したnvidiaパッケージを必ず確認してください。例えば:
$ 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
私は361からうまくいくものが見つかるまで(私の場合は340)、ボトムアップ戦略でリストをテストしました。
それが役立つことを願っています。
私の場合(Ubuntu 16.10 64ビット、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
を使うことで同様の問題を抱えていました、GUIでソフトウェアグラフィックスに変えることができませんでした。
そこで私はエミュレータのフォルダ(AVDMのShow on Disk
リンク)に行き、config.ini
を見つけました。
ここで私はGPUを使わないように次の行を変更しました。
hw.gpu.enabled=no
これはAndroid Emulator 27.2.9で修正されています。ここにリストされている最初の修正を参照してください。 https://developer.Android.com/studio/releases/emulator#fixes