web-dev-qa-db-ja.com

エミュレータ:警告:ソフトウェアレンダラーを使用してOpenglESエミュレーションを初期化できませんでした

Androidエミュレーターからのこれらのエラーメッセージは何を意味しますか?

Starting emulator for AVD 'AVD'
Failed to create Context 0x3005
could not get wglGetExtensionsStringARB
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
28
user2118445

コマンドラインからエミュレーターを起動中-$ emulator64-arm -avd GalaxyS2-同様の(そしておそらく/おそらく)関連するメッセージが表示されました:

エミュレータ:エラー:OpenGLESエミュレーションライブラリをロードできませんでした:lib64OpenglRender.so:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません

このファイルlib64OpenglRender.soからlocateを見つけました。 tools/lib- dirのAndroid-sdk-linux-サブディレクトリにあります。

そこで/etc/ld.so.conf.d/Android_stuff.confを作成し(もちろん、そのディレクトリの別の* .conf-fileに次の行を追加できます)、1行を入力します。

path_to_Android-sdk-linux_directory/tools/lib

次に、構成ツールを呼び出します:ldconfig(パラメーターなし)と(少なくとも私の場合)エラーメッセージは消えました。

15
Gerd

export LD_LIBRARY_PATH = "/ home/<user-pc>/Android/Sdk/tools/lib64:$ LD_LIBRARY_PATH"

cd/home/nazmul/Android/Sdk/tools

./emulator64-x86 -avd <avd-name> -gpu on

このコマンドは私のラップトップで動作します。

9
Nazmul

グラフィックスカード用の正しいドライバーをインストールしてください。私はまったく同じエラーが発生していました。

3
mr.low


ゲルトのソリューションが最も役に立ちました。

誰かがこれに遭遇した場合、より詳細で完全なソリューション...

Vanilla studio.shスターターシェルスクリプトはenv変数を設定します。

LD_LIBRARY_PATH="$IDE_BIN_HOME:$LD_LIBRARY_PATH"

その後、エクスポートします。 IDE_BIN_HOMEは、studio.shファイルの場所(通常は[Android-studio]/binの中間)を使用して設定されます。 Studio-> Manger-> Tools-> Manage AVDsからエミュレータを起動すると、このenv-varにはAndroid-SDK/tools/binというプレフィックスが付きます。スタンドアロンで起動するという意味は、そのenv-varを設定しなかったということです。 Gerdのソリューションは、システムlib-search-pathにlibを追加します。別のアプローチは、これを処理するラッパーを作成して、必要な場合にのみ設定され、(おそらく)他のものも設定されるようにすることです。

#!/bin/bash
export Java_HOME="/usr/lib/jvm/Java-BLAH"
export STUDIO_JDK="$Java_HOME"     #This is also used in studio.sh
export IDE_BIN_HOME="/home/you/Android-studio/bin"
export Anroid_SDK="/home/you/Android-sdk"
export LD_LIBRARY_PATH="$Anroid_SDK/tools/lib:$IDE_BIN_HOME:$LD_LIBRARY_PATH"

cd "$Anroid_SDK/tools"

./emulator64-x86 -avd AVD-NAME-1 -gpu on &
./emulator64-arm -avd AVD-NAME-2

これはおそらく少しやり過ぎですが、完全です;)Distro/Setupに応じて、Java_HOMEが事前設定されているため、その行を削除できます。エミュレータを常に使用する場合は、次のようなものを追加することもできます

export LD_LIBRARY_PATH="[YOUR Studio PATH]/tools/lib:$LD_LIBRARY_PATH"

.bashrcまたは.profileファイルに。

しかし、実際の質問に答えるには、エミュレーターが(ハードウェアアクセラレーション)OpenGLESを実行できなかったこと、およびソフトウェアルーチンを使用してOpenGLESを実装/エミュレートしていることを意味します。適切な(3D-Accel。?)グラフィックカードドライバーをインストールしてから、上記のいずれか(ラッパーシェルまたは(bash-)session-init設定)を選択します。

Android-Studioの新しいバージョンがSDKを分岐したことに注意してください

2
Kevin

あなたはAndroid RAMのようなデバイスの仕様、ヒープのその他の仕様で遊ぶ必要があります。

どれを何に設定する必要があるかを伝えるのは困難です。私の場合、RAMを512に設定し、ヒープ128を機能させるために設定しました。

0
Daniel

もう1つのヒント...仮想マシンを使用していないかどうかを確認してください...実際のマシンを使用する必要があります。

0
Prachi

RAM512 MBを持っている場合でも、私も同じ問題を抱えていました。古いエミュレータを「削除」して解決し、新しいエミュレータを再作成しました。それでも私はこの問題の理由を知りませんでした。この問題はまだGoogleによって解決されていません 開発者 。私のソリューションが他の人を助けることを願っています。

0
Gowtham Kumar

これは、リンカがシステム上のOpenglESライブラリを見つけることができなかったことを意味します。それらをインストールしてみてください。

Fedoraでは、これは問題を解決するようです:

> yum install mesa-libGLw.i686

関連情報はこちら: http://www.redips.net/Android/emulator-Fedora-linux/

編集:Windows関連の場合、 this answer はあなたが望むことをするように見えます。

0
r.v