16.10へのアップグレード後のAndroid Studioバギー


31

私は最近、Androidスタジオが正常に動作していた16.04 LTSから16.10にアップグレードしましたが、AVDエミュレータを実行しようとすると、代わりに戻ってくるエラーログです

Cannot launch AVD in emulator.
Output:
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
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:  55
  Current serial number in output stream:  54
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
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 r

この道にアンドロイドスタジオはありますopt/android-studioか??
Arduino_Sentinel

これは、Ubuntu 17.04でも発生します。@Arduino_Sentinelの答えはそれを修正しました。
リミアン

回答:


49

最近のAndroid Studioの更新では、Google libstdc++はシステムにインストールされたIntelドライバーと互換性のないを使用します

あなたはまずありません場合は、システムに以下のパッケージをインストールする必要があります lib64stdc++6し、mesa-utils

sudo apt-get install lib64stdc++6 mesa-utils

次に、ライブラリをAndroid SDKツールパスにシンボリックリンクします

## For the /Sdk/tools path

cd ~/Android/Sdk/tools/lib64/libstdc++
# making a copy of the file
sudo mv libstdc++.so.6 libstdc++.so.6.og
# symlink
sudo ln -s /usr/lib64/libstdc++.so.6 ~/Android/Sdk/tools/lib64/libstdc++

## For the /Sdk/emulator path

cd ~/Android/Sdk/emulator/lib64/libstdc++
# making a copy of the file
sudo mv libstdc++.so.6 libstdc++.so.6.og 
# symlink
sudo ln -s /usr/lib64/libstdc++.so.6 ~/Android/Sdk/emulator/lib64/libstdc++

12
フォルダは~/Android/Sdk/emulator/lib64/libstdc++私のためにありました。
ケビンブロツケ

42

私はUbuntu 17.04でもこの問題を抱えていましたが、これが私がしたことです。

.profileお気に入りのテキストエディタを使用して編集します

atom ~/.profile

これをファイルの最後に追加します

export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

ソース:Android SDK環境変数


2
最適なソリューション
ウラジミール

これは、Android Studio 3.01を搭載したUbuntu 17.10では機能しませんでした。ライブラリフォルダーの名前を〜/ Android / Sdk / emulator / lib64 / lib / libstdc ++に変更しただけで機能しました。
ヴィンセントジェリス

Kubuntu 18.04で私のために働いた。どうもありがとうございました!
ヴァネッサディーガン

18

ターミナルからエミュレーターを実行する

emulator -use-system-libs -avd YOUR_VIRTUAL_DEVICE_NAME

1
これをデフォルトにする方法はあるので、ターミナルから実行する必要はありませんか?
カロラ

1
@karora jasperagranteの答えを参照してください
アルティアーノGerung

@AltianoGerungええ、すでにAndroid Studioをシェルスクリプトでラップしているので、そこで変数を設定することになりました
...-karora

4

もう1つの簡単な回避策は、Android SDKディレクトリのエミュレーターフォルダーにあるlibstdc ++の名前を変更することです。システムライブラリにフォールバックします(インストールする必要があります)。Ubuntu 17.10でそれは「うまくいきました」。


ハハこれはばかげている!
ケネスワーデン

どういう意味ですか :)?個人的には、Googleがこのように出荷する理由がわかりません。use-system-libsオプションは私にとっては機能しませんでしたので、有効な回避策のように思えます。エミュレーターが更新されたときにもう一度行う必要があります。
ヴィンセントジェリス

2

エミュレータを更新します。

Tools -> SDK Manager -> SDK Tools -> Android Emulator

ここに画像の説明を入力してください

これは、27.2.9で修正されているバグです。

Linux版のAndroid Emulatorは、最新のClang C ++ツールチェーンを使用して構築されています。この変更により、libGLおよびlibstdc ++エラーが原因でエミュレーターが起動しない問題が修正されます。


参考: BTWが手動でシンボリックリンクを作成することはお勧めできません。

設定ANDROID_EMULATOR_USE_SYSTEM_LIBSはより良いアプローチです。ただし、エミュレーターを更新するだけでよい場合は、これも必要ありません。


1

グラフィックアクセラレーションを自動/ハードウェアからソフトウェアに切り替えました。この問題を引き起こしているドライバーは、グラフィックアクセラレーションに実際のハードウェアを使用する場合にのみ必要です。ゲームやその他のグラフィックを多用するソフトウェアで作業しているのでなければ、これは本当に必要ありません。これは各advで実行する必要がありますが、一度実行すると設定されたままになります。


-1

このリンクは役立ちます。Ubuntu 17.10のインストールに基づいてlibstdc ++。soの場所を変更しました。libstdc ++。soファイルの場所が異なっていました。コンピューターでlibstdc ++。soを検索します

Ubuntu 17.10およびAndroid Studio 3.1

cd /opt/android-sdk/emulator/lib64/libstdc++
mv libstdc++.so.6{,.bak}
mv libstdc++.so.6.0.19{,.bak}
ln -s /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.