我试图在Ubuntu 12.04(64位)中运行android模拟器。但是,我得到了以下错误。
Starting emulator for AVD 'emulatr'
Failed to load libGL.so
error libGL.so: cannot open shared object file: No such file or directory
Failed to load libGL.so
error libGL.so: cannot open shared object file: No such file or directory
emulator: emulator window was out of view and was recentered
使用locate libGL.
后,我发现
/home/adnan/android-sdk-linux/tools/lib/libGL.so
/usr/lib/libGL.so
/usr/lib/i386-linux-gnu/libGL.so
/usr/lib/i386-linux-gnu/mesa/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
我也尝试了一些解决这个问题的方法,但是没有成功。如果你们帮我解决这个问题,我会很高兴的。
http://learnedstuffs.wordpress.com/2012/07/17/fixing-ubuntu-error-failed-to-load-libgl-so/
apt-get install libgl1-mesa-dev
为我工作
在Fedora 上
sudo yum install mesa-libGL-devel
因为我使用的是64位Ubuntu 12.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 14.04 64位:
$ sudo apt-get install libgl1-mesa-dri
$ sudo ln -sv /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so
您不需要libgl1-mesa的开发文件,因此您应该/可以按照其他人的建议安装libgl1-mesa-dri
而不是libgl1-mesa-dev
。这样可以为您节省几MB不必要的文件。
此外,Android应用程序是32位或64位的。
对于32位Ubuntu,您需要32位SDK(因为64位不起作用):
sudo apt-get install libgl1-mesa-dri
同样适用于带有64位SDK的64位Ubuntu。
但对于一个64位的Ubuntu和一个32位的SDK组合,你需要指定你需要32位版本的包:
sudo apt-get install libgl1-mesa-dri:i386
我也遇到了这个问题(fedora 20),但libGL文件已经存在于我的文件系统中。根据对旧的fedora 18安装上的库的检查,我发现我可以通过为链接到libGL.so.1.2.0的libGL.so提供符号链接来解决这个问题。