82

Oracle JDK7でUbuntu12.04(Precise Pangolin)を使用していますが、 EclipseからAndroidエミュレーターを実行すると、次のエラーが発生します。

[2012-07-04 02:52:10 - Emulator] error libGL.so: cannot open shared object file: No such file or directory 
[2012-07-04 02:52:10 - Emulator] Failed to load libGL.so

また、エミュレータは非常に遅いです。どうすればこの問題を解決できますか?

4

26 に答える 26

82

Android SDKを〜/ android-sdk-linux_x86にインストールしているので、次のようにしました。

ln -s /usr/lib/libGL.so.1 ~/android-sdk-linux_x86/tools/lib/libGL.so

これにより、/ usr / libにリンクするのと同じようにエラーが解決されますが、rootを必要とせず、コアシステムディレクトリを混乱させることもありません。

于 2012-09-27T12:19:13.553 に答える
35

64ビットのUbuntu12.04では、次のようにします。

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
  libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

出典:必要なパッケージのインストール(Ubuntu 12.04)

于 2012-07-23T10:26:14.070 に答える
32

32ビットUbuntu12.04LTSの場合、これは機能しました。

sudo apt-get install libgl1-mesa-dev

次のいずれも機能しませんでした。

cd /usr/lib/i386-linux-gnu/mesa/
sudo ln -s libGL.so.1.2 libGL.so 
sudo ln -s libGL.so.1.2 /usr/lib/libGL.so
ln -s libGL.so.1.2 ~/android/android-sdk-linux/tools/lib/libGL.so
于 2012-10-12T05:54:35.540 に答える
32

Ubuntu12.0464ビットを使用しています。次のコマンドを使用して問題を解決します

 sudo ln -s /usr/lib32/fglrx/libGL.so.1.2 /usr/lib/libGL.so

:これは、AMD/ATIグラフィックドライバを使用するユーザーにのみ適用されます。

于 2012-07-10T07:15:02.213 に答える
14

私(ubuntu 12.04 64ビット)で機能するのは、実行することだけでした:

    sudo apt-get install libgl1-mesa-dev

libGL.soディレクトリに存在することがわかりました/usr/lib/x86_64-linux-gnu/

32ビットバージョンのインストールが機能していませんでした。

于 2013-01-30T12:26:21.327 に答える
6

64ビットのUbuntu12.04には、/ usr/lib64はありません。/ usr/libのみです。また、私のマシンには、libGL.soが存在しません。代わりに、ファイルはlibGLEW.soです。

/usr/lib/LibGL.soをインストールするには、次のコマンドを実行できます。sudo apt-get install libgl1-mesa-dev

しかし、それは私にとって問題を解決しませんでした。実際、それはおそらく私のシステムを台無しにしました。

于 2012-07-05T08:00:26.473 に答える
4

私はそれを正しく理解したと思います、警告も遅くもありません...しかし、これはプロプライエタリドライバでは動作しないかもしれません。

libgl1-mesa-glx:i386がインストールされていることを確認してください(x64 SOファイルを入手した場合でも)。次に、次のことを行います。

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so
于 2012-07-11T16:15:40.107 に答える
4

これは、64ビットのUbuntu12.10とADTバンドルで機能しました。

ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 ~/adt-bundle-linux-x86_64/sdk/tools/lib/libGL.so

/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1インストールするだけではない場合libgl1-mesa-glx

sudo apt-get install libgl1-mesa-glx
于 2013-01-18T17:44:05.017 に答える
3

http://developer.android.com/sdk/installing/index.htmlを参照して、ia32-libsをインストールしました。

ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/i386-linux-gnu/mesa/libGL.so

この問題を解決するために私がしたのはそれだけです。

于 2012-08-22T03:57:10.760 に答える
3

NVidia Optimus:

デュアルグラフィックス(Intelとnvidia)で実行し、次を使用しました。

  1. Bumblebeeをインストールします(https://wiki.ubuntu.com/Bumblebee#Installationを参照) 。
  2. 必要なライブラリをインストールします。
  3. nvidiaディスクリートカードでエミュレータを実行します。

これでうまくいくはずです:

sudo add-apt-repository ppa:bumblebee/stable
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update 
sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic 
sudo apt-get install ia32-libs

エミュレーターを実行したいときはいつでも、optirunを使用してください。

optirun emulator @<avd_name>

昨日Linuxをインストールしただけだという警告を出す必要があります。だから私は自分が何をしているのか本当にわかりません…。

于 2012-11-28T18:32:43.523 に答える
3

私はLinuxMint14-64ビットを使用していますが、私にとってはうまくいきました:):

sudo apt-get install libgl1-mesa-glx libgl1-mesa-dev
于 2013-07-17T02:06:49.047 に答える
2

Ubuntu 12.04 64ビット、GNOME 3.4では、最初にhttp://developer.android.com/sdk/installing/index.htmlを参照し、ia32-libをインストールしました。これにより、/ usr / lib/i386-linux-gnuが生成されます。 /mesa/libGL.so.1.2.0

次に、以下のコマンドを実行して、この問題を解決しました。

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so

これは、gridstationの回答とは少し異なります。

Mesaドライバーをローカルにインストールする必要はないと思います。これにより、実際のビデオドライバーで問題が発生する可能性があります。

于 2012-10-18T12:12:51.620 に答える
2

Ubuntu 12.10 (Quantal Quetzal)64ビットで動作させるには、次の2つのことを行う必要があります。

1)LD_LIBRARY_PATHを初期化する必要があります

例:

export LD_LIBRARY_PATH=~/tests/android/adt-bundle-linux-x86_64/sdk/tools/lib

コメント:あなたの場所へのパスを変更します

2)シンボリックリンクを作成する必要があります

a)locate libGL正しいライブラリを見つけるために使用します。

rudy@vsolutions:~$ locate libGL
/home/rudy/opt/android/android-sdk-linux/tools/lib/libGLES_CM_translator.so
/home/rudy/opt/android/android-sdk-linux/tools/lib/libGLES_V2_translator.so
/usr/lib/i386-linux-gnu/libGLU.so.1
/usr/lib/i386-linux-gnu/libGLU.so.1.3.1
...
/usr/lib32/nvidia-current/libGL.so.304.43

b)ソフトリンクを作成します

sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so

コメント:64ビットオペレーティングシステムで64ビットライブラリを使用してください!

エミュレータを起動します。 私のシステムはOptimusで、 Bumblebeeをインストールしました。「Intelオープンソーステクノロジーセンター」「MesaDRIIntel(R)IronlakeMobile」「2.1Mesa9.0」または「NVIDIACorporation」「GeForceGT330M / PCIe /SSE2」「3.3.0NVIDIA304.43」を使用できます。

a)インテル

/home/rudy/tests/android/adt-bundle-linux-x86_64/sdk//tools/emulator64-arm -avd avd_42 -scale 0.46 -gpu on -verbose

b)Nvidia

optirun /home/rudy/tests/android/adt-bundle-linux-x86_64/sdk//tools/emulator64-arm -avd avd_42 -scale 0.46 -gpu on -verbose

コメント:

  • IntelカードとNvidiaカードの間に違いは見られませんでした...それは確かにエミュレータがGPUを集中的に使用していないためです。
  • 私のシステムでは、Intel Core i5で、エミュレーターを起動するのにほぼ1分かかりました...しばらくお待ちください...エミュレーターがロードされてからかなり速くなります(待機するのに1分)。Eclipse IDEからエミュレーターを起動すると、エミュレーターはソフトウェアエミュレーションを実行し(GPUがオフ)、起動に1分30分かかりました...IntelまたはNvidiaカードを使用するよりもはるかに低速です!!!
  • verboseより多くの診断を表示するために使用するパラメータです
  • optirunマルハナバチのNvidiaを利用するためのコマンドです。マルハナバチをお持ちでない場合は使用しないでください。
  • avd仮想デバイスです
  • gpu onグラフィカルカードを利用する
于 2013-01-13T20:40:37.917 に答える
2

Ubuntu 64ビットでは、

1.libGLを確認します。

$ locate libGL.so
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0

2.SDKがインストールされているシンボリックリンクを作成します

ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/local/android-studio/sdk/tools/lib/libGL.so
于 2014-07-27T06:58:47.920 に答える
1

OSError:libGL.so:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリはありません

Linuxシステムで初めてVNLを起動しようとすると表示される場合があります。これを解決するには、(管理者として)次の場所に新しいリンクを作成します/usr/lib

sudo ln -s /usr/lib/libGL.so.1.2 /usr/lib/libGL.so

64ビットLinuxを使用している場合は、を使用して/usr/lib64 insteadください。

まず、実際libGL.so.1.2/usr/libまたはにあることを確認します/usr/lib64。ビデオドライバに応じて、代わりに呼び出されるlibGL.so.1か、別のディレクトリに配置される場合があります。

libGLLocateを使用して、リンクする正しいファイルを見つけることができます。

于 2012-07-04T18:23:08.387 に答える
1

user1289608と同様に、Mesaの既存のインストールからシンボリックリンクを作成できました。

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so
于 2012-08-27T00:27:11.660 に答える
1

私も同じ問題を抱えていました。しかし、私の場合、私はそれを別の(私が思うに、より良い)方法で解決しました。

libgl1-mesa-dev私の状況(Lubuntu 13.10)では、 Synaptic Package Managerを介してライブラリをインストールするだけで十分でした( libgl1-mesa-driLubuntuuディストリビューションがセットアップされたときにライブラリはデフォルトですでにインストールされていました)。

これにより、あるファイルから別のファイルにリンクを配置するという面倒な作業がすべて解決され、システムの汚染も防止されます。

  • 数か月(または数年)後に、システムの実行を維持するためにどの専用リンクを設定したかをどのようにして知ることができますか?
  • あなたがそれらのことを自分で始めたら、将来のアップデートはどうですか?「手動介入」のために何かが壊れたり更新されなかったりしますか?

「システムメカニズム」を使用すれば、それはすべてあなたのために行われます。そして正しく行われました。そもそもそれらのツールが存在するのはそのためです。

最高のrgds、

于 2013-12-31T10:13:59.097 に答える
0

Ubuntu12.0464ビットを使用しています。にリンク/usr/lib64/libGLC.so.0する/usr/lib64/libGL.soと問題が解決するようです。

編集:それはエラーメッセージを止めます、しかしエミュレーターは私にとってまだ遅いです。

于 2012-07-06T15:51:45.103 に答える
0

これは私のために働いた:

DDMSからadbを再起動します。Eclipseの場合:
[ウィンドウ]>[パースペクティブを開く...]>[その他]>[DDMS]。左側のペインからエミュレーターを選択し、「Restartadb」を選択します

ターミナルウィンドウからadbサーバーを再起動することもできます。

android-sdk-linux/platform-tools/adb kill-server
android-sdk-linux/platform-tools/adb start-server
于 2012-07-07T03:41:38.907 に答える
0

私も同じ問題を抱えていました。Nvidiaドライバーを再インストールすると、セグメンテーション違反が修正されました。

于 2012-07-16T06:14:59.473 に答える
0

コマンド「locate」でlibGLのフォルダを見つけました

/ usr / lib /i386-linux-gnu/にあることが判明しました

〜$ find libGL
/usr/lib/i386-linux-gnu/libGLEW.so.1.8
/usr/lib/i386-linux-gnu/libGLEW.so.1.8.0
/usr/lib/i386-linux-gnu/libGLEWmx .so.1.8
/usr/lib/i386-linux-gnu/libGLEWmx.so.1.8.0
/usr/lib/i386-linux-gnu/libGLU.so.1
/usr/lib/i386-linux-gnu/libGLU .so.1.3.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0

于 2013-03-18T11:01:29.293 に答える
0

Debian 7の「Wheezy」インストールでは、次のコマンドを使用しました。

ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 opt/android/tools/lib/libGL.so
于 2013-12-10T03:53:28.580 に答える
0
sudo apt-get install libgl1-mesa-dev
cd ~/Development/adt-bundle-linux-x86_64-20140321/sdk/tools/lib
unlink libGL.so 
ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 libGL.so

それでおしまい!

于 2014-07-14T10:06:31.663 に答える
0

AVDを作成するときに「ホストGPUを使用する」をチェックしたため、この問題が発生しました。そのオプションをオフにして試してみたところ、エミュレータを正常に起動できました。これは私のテスト目的では許容できますが、ホストGPUの使用が重要な場合は、ここで他のソリューションのいくつかを試してみることをお勧めします。

于 2014-08-21T15:15:10.923 に答える
-1

この問題は、64ビットライブラリと32ビットライブラリの両方でlibgl1を再インストールすることで解決しました。

$ sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-glx:i386

背景:以前は、無料のradeonドライバーからfglrxに切り替えました。fglrxには独自のバージョンが付属しているため、これはどういうわけか私のlibgl1を台無しにしたと思います。

さらに、32ビットの共有ライブラリを(64ビットの)/ lib /ディレクトリにシンボリックリンクするのは間違っているため、ここで提供されている他のソリューションはおそらく危険だと思います。

于 2012-08-31T14:55:25.970 に答える
-2

libgl1-mesa-*パッケージがインストールされているかどうかを確認します。その場合は、パッケージをインストールしてlibgl1-mesa-dev、バージョン管理されていない共有オブジェクトを取得します。

これを行う必要はありません-これはAndroidチームのエラーです。彼らに休憩を与えてください、彼らはJava開発者だけです。

于 2012-07-04T22:16:52.543 に答える