错误libGL.so:无法使用Android模拟器打开共享对象文件



我试图在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提供符号链接来解决这个问题。

最新更新