AndroidでlibGL.soを読み込めませんでした


82

私が使用していますUbuntuの12.04オラクルで(正確なセンザンコウを)JDK 7、と私はAndroidのエミュレータから実行していたときにEclipseを、それがこのエラーを与えています:

[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

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

回答:


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は必要なく、コアシステムディレクトリを混乱させることもありません。


5
これをliboの「apt-get」コマンドと組み合わせると、ここで最もクリーンなソリューションになります。
デイブキャメロン

libGL.so.1をまだお持ちでない場合は、liboによるソリューションを使用する必要があるかもしれませんが、これはファイルをリンクするための最もクリーンな場所です。64ビットのLIBSに32ビットを配置する必要がありません....ん
アヤックス

23
locate libGL最初は役立つかもしれません

2
私はfind / -name 'libGL.so.1'それを使用してに配置しまし/usr/lib/x86_64-linux-gnudebian jessie
Justin Skiles 2014

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)


2
これは私のシステムを台無しにしました
アレクサンドロス

この回答を回答と組み合わせて-依存関係を解決するためのaskubuntu.com/a/144194(aptitudeを使用して依存関係を特定し、問題の原因を確認します)、最終的sudo apt-get install --reinstall gcc-4.7-multilibには回答askubuntu.com/a/236114で
aleks

最初に「sudoapt-getinstall libglapi-mesa」を実行し、次に「sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386」を
実行する必要がありました

x86用のlibGLをインストールする必要はなかったと思います。./sdk/tools/emulator64-x86を使用するだけで十分でしたか?(「64」に注意)
jcarballo 2014

1
ああ、なんらかの説明や警告なしにアプリのインストールの膨大な行を投稿するのは良くありません。
セバスチャンマッハ

32

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

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

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


1
これは私にも有効でした。これはATIカードでのみ有効だと思います。これは、32ビットの共有ライブラリを(64ビットの)/ lib /ディレクトリにシンボリックリンクするため、技術的に間違っていますが、Androidエミュレータはこのライブラリのみを検索するようです。
Alex Pretzlav 2012

3
libGL.soのファイル検索を実行し、場所に基づいてリンクコマンドを調整することをお勧めします。鉱山はであることを起こっします。/ usr / lib / i386の-linuxの-GNU /メサ
bytebender

2
私は/usr/lib/x86_64-linux-gnu/mesa/libGL.soにありましたが、実行しようとするとエラーが発生しました。32ビットライブラリが必要で、64ビットライブラリを提供したためです
Ben McCann

32

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

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

1
同じことが12.10にも
当てはまります

Linux Mintについても同じ
Sephy 2013年

13.04で動作します。tools / libディレクトリにシンボリックリンクを配置した場合は、再度削除する必要があることに注意してください。
ペルセウス座流星群2013年

2
apt-getコマンドはUbuntu13.04 x64でも機能し、シンボリックリンクは必要ありません。
Jason McVetta 2013

14

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

    sudo apt-get install libgl1-mesa-dev

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

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


6

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

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

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


Synapticで確認すると、libgl1-mesa-devはlibGL.soを/usr/lib/x86_64-linux-gnu/libGL.soにインストールします
sergio91pt 2012

1
GLEWは、別のライブラリであるOpenGL ExtensionWranglerです。これは「代わり」ではなく、libGLに加えてプログラムが使用できるものです。
Wyzard 2012

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

4

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

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

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

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しかインストールしなかったことを警告する必要があります。だから私は自分が何をしているのか本当にわかりません…。



3

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

sudo apt-get install libgl1-mesa-glx libgl1-mesa-dev

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


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

これでUbuntu64ビットの問題が解決することを確認できます。
Yermo Lamers 2014

2

それは上で動作させるためにUbuntuの12.10(素量ケツァール)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をインストールしました。「IntelOpenSource Technology Center」、「Mesa DRI Intel(R)Ironlake Mobile」、「2.1 Mesa 9.0」、「NVIDIA Corporation」、「GeForce GT 330M / 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 グラフィックカードを利用する

1

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

初めてVNLを起動しようとすると、Linuxシステムに表示される場合があります。これを解決するには、(管理者として)次の場所に新しいリンクを作成します/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/lib64libGL.so.1ビデオドライバに応じて、代わりに呼び出されるか、別のディレクトリに配置される場合があります。

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


1

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

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

これにより、あるファイルから別のファイルにリンクを配置する煩わしさがすべて解決され、システムの汚染も防止されます。

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

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

最高のrgds、


ちょうど今、@ Tanyasipetiがapt-getを通じて同じことをしたのを見ました。しかし、私の場合、それは問題を完全に解決しました。エミュレータを起動して実行しました。
GeertVc 2013

私は13.10でそれを自分で理解し、答えとして似たようなものを追加したいと思いました!
ベガー2013

1

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

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

0

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

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


はい、エミュレーターは私にとっても信じられないほど遅いです。
IgorGanapolsky 2012

0

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

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

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

android-sdk-linux/platform-tools/adb kill-server
android-sdk-linux/platform-tools/adb start-server

0

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

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

〜$探し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


0

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

ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 opt/android/tools/lib/libGL.so

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

それでおしまい!


0

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



-1

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

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

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

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


-2

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

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


私はすでに私のシステムにmesa-libGL-devを持っていますが、それでもエラーがあります
php.khan 2012

これは、Ubuntu 11.1032ビットで機能しました。libgl1-mesa-devをインストールしましたが、emultorの起動時にエラーメッセージが表示されなくなりました。リンクを実行する必要はありませんでしたが、64ビットで必要になる可能性がありますか?
キャサリンリックス2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.