Ubuntu 15.10 PCにNexus 6P API23エミュレーターをダウンロードしています。起動しようとすると失敗し、ダイアログボックスが表示されて次のように表示されます。
(AVD構成:Nexus 6P API 23 x86-ハードウェア-GLES 2.0グラフィックス)
Cannot launch AVD in emulator.
Output:
libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
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: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
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: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
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
他のAVDを試しましたが、機能しません。
また、エミュレートされたパフォーマンスグラフィックオプションのAVD設定で[ソフトウェア]を使用することもできます。
私はあなたと同じエラーがあり、回避策を見つけることができました。うまくいけば、これもあなたの問題を解決するでしょう。
Android Studioからエミュレータを起動するのではなく、ターミナルを開いて、Android SDKディレクトリ-mine is ~/Android/Sdk/tools
。そこからコマンドを実行します:
LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 ./emulator -avd <insert avd name here>
これで、緑色の実行矢印を押して開始したエミュレータを選択することで、Android studioでアプリケーションを起動できるようになります。
これが機能する理由の詳細については、 here を参照してください
編集:
少し考えてから、このスクリプトを試してみたところ、Android Studio。エミュレーターの実行可能ファイルを上記のように呼び出すbashスクリプトに置き換えられます。ツールのパスを正しい場所に変更する必要がありますが、何か問題が発生した場合に備えて、ツールディレクトリのバックアップコピーを作成することもお勧めします。
#!/bin/bash
TOOLS_PATH='/home/user/Android/Sdk/tools'
UNEXPANDED_LIB='$LIB'
for emul in ${TOOLS_PATH}/em*
do
cp ${emul} ${emul}-orig
cat <<EOF > ${emul}
#!/bin/bash
LD_PRELOAD='/usr/$UNEXPANDED_LIB/libstdc++.so.6' ${emul}-orig "\$@"
EOF
done
私の場合:私はDebian Jessieで働いており、Android Studio 2.2.3。私のグラフィックカードはSapphireのATI Radeon HD 6850です。
エミュレーターは、グラフィックドライバーのロードに問題があると言います( "libGLエラー:ドライバーをロードできません:r600_dri.so")。 ここ で説明されているように、GoogleはAndroid Studioの1つのライブラリの古いバージョン(libstdc ++。so.6)、およびエミュレータがグラフィックカードを使用しようとすると失敗します。
溶液?非常に簡単:Android Studioにパッケージ化されているのではなく、システムライブラリを使用する方法。コマンドの最後に「-use-system-libs」を追加する。
./emulator -avd EMULATOR_NAME -netspeed full -netdelay none -use-system-libs
決定的な解決策は(ターミナルを使用したくない場合)Android_EMULATOR_USE_SYSTEM_LIBS
ユーザー/システムの環境変数を1に設定します。この変更により、Android Studio内でエミュレータを実行すると、パッケージではなくシステムライブラリもロードされます。
PS-環境変数を設定する最も簡単な方法は、Android Studio(studio.sh)を起動するスクリプトを変更することです私の場合は/ opt/Android-stuido/bin)の中にあり、これを最初に追加します:
export Android_EMULATOR_USE_SYSTEM_LIBS=1
[〜#〜] update [〜#〜]2017年12月:Debian StretchとAndroidで同じ問題がありました= Studio 3.0.1(同じグラフィックカード)同じ解決策が私にとって有効です。
ターミナルで次のように入力する(Ctrl-Alt-T)ことで解決しました。
cd $Android/Sdk/tools/lib64/libstdc++
mv libstdc++.so.6 libstdc++.so.6.bak
ln -s /usr/lib64/libstdc++.so.6
これは明らかにシンボリックリンクを作成します。このソリューションは、 https://code.google.com/p/Android/issues/detail?id=197254#c2 の23行目から取られました。
インストールに応じて、ファイルへのパスを変更する必要がある場合があります(つまり、元のファイルはAndroid_HOME/Android-sdk-linux_x86 /というパスを使用しましたが、私のインストールはAndroid/Sdk /でした)。
Ubuntu 16.04 LTSとAndroid Studio 2.3.2でまったく同じ問題があり、ターミナルウィンドウで次の操作を行うことで問題を解決しました。どこにあるか思い出せないので、クレジットが支払われるべき場所にクレジットを与えることはできません)
Sudo apt list "*nvidia-[0-9][0-9][0-9]"
返品された鉱山:nividia-346 nividia-352 nividia-361 nividia-367 nividia-375
次に、返されたそれぞれに対して次を実行しました。
Sudo apt install nvidia-375
Sudo apt install nvidia-367
Sudo apt install nvidia-361
Sudo apt install nvidia-352
Sudo apt install nvidia-346
その後、Ubuntuを再起動すると、すべてが正常に機能しました。
私はubuntu 16.04 Android studio 3、
ln -s $Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6.0 $Android/Sdk/tools/lib64/libstdc++
〜/ Android/Sdk/emulator/lib64/libstdc ++ /にlibstdc ++。so.6が見つかりました
しかしAndroid studioは見つかりました〜/ Android/Sdk/tools/lib64/libstdc ++ /
Debian Stretch(Android Studio 3.0.1/Android Emulator 27.1.12)で同じ問題が発生し、次の修正を適用しました:
Sudo apt-get install libstdc++6:AMD64
cd ~/Android/Sdk/emulator/lib64/libstdc++
mkdir old
mv libstdc* old
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6