android - Fedora 64 位中的 Android 模拟器使用哪个 libGL?

标签 android linux android-emulator fedora

我使用 Fedora 19 64 位 (GNOME 3) 进行 Android 开发。

找到 libGL 给我:

/home/ericnguyen/adt/sdk/tools/lib/libGLES_CM_translator.so
/home/ericnguyen/adt/sdk/tools/lib/libGLES_V2_translator.so
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2.0
/usr/lib64/libGL.so.1
/usr/lib64/libGL.so.1.2.0
/usr/lib64/libGLU.so.1
/usr/lib64/libGLU.so.1.3.1
/usr/share/doc/mesa-libGL-9.2
/usr/share/doc/mesa-libGL-9.2/COPYING

现在我无法使用计算机的 GPU 启动模拟器
无法加载 libGL.so 错误 libGL.so:无法打开共享对象文件:没有这样的文件或目录

所以,我正在尝试找到合适的 libGL.so 文件来执行 this 操作。

另外,当我:

yum install mesa-libGL.x86_64

我得到:

Package mesa-libGL-9.2-0.14.20130723.fc19.x86_64 already installed and latest version
Nothing to do  

注释:
我可以在没有 GPU 的情况下运行模拟器。

我的显卡是AMD ATI Radeon HD 5000系列。我认为我还没有安装任何驱动程序。我执行了 yum search radeon 并找到了 xorg-x11-drv-ati.x86_64 但我不确定这是否是正确的驱动程序 - 我发现人们遇到了启动问题尝试安装显卡驱动程序(我自己的 Windows 经验),所以我现在有点不确定。
我还知道,需要安装 AMD/ATI 的专有软件才能使用显卡。

最佳答案

模拟器是一个 32 位应用程序。您需要安装等效的 32 位库。来自 Fedora wiki HOWTO Setup Android Development推荐的库是:

glibc.i686 glibc-devel.i686 libstdc++.i686 zlib-devel.i686 ncurses-devel.i686 libX11-devel.i686 libXrender.i686 libXrandr.i686

如果您可以在没有 GPU 支持的情况下运行模拟器,我会假设您拥有所有这些。

对于 mesa-libGL,您的 yum 命令正在尝试安装该库的 64 位版本,因此请尝试以下操作:

yum install mesa-libGL.i686

编辑(问题更新后):

是,如果尚未安装 xorg-x11-drv-ati 驱动程序,请安装。这是开源驱动程序,如果它不起作用,您应该返回到您现在正在运行的任何驱动程序。

我有一张 Nvidia 卡,但它是与我之前的 ATI 卡一起运行的。我认为自从我不久前设置模拟器以来,模拟器已经发生了一些变化,因为它似乎正在与 64 位库一起运行:

$ pldd 9989 



...
...
./lib/lib64OpenglRender.so
/opt/android-sdk-linux/tools/./lib/../lib/lib64EGL_translator.so
/usr/lib64/nvidia-304xx/libGL.so.1
/usr/lib64/nvidia-304xx/tls/libnvidia-tls.so.304.88
/usr/lib64/nvidia-304xx/libnvidia-glcore.so.304.88
/opt/android-sdk-linux/tools/./lib/../lib/lib64GLES_CM_translator.so
/opt/android-sdk-linux/tools/./lib/../lib/lib64GLES_V2_translator.so
/lib64/libGL.so
/lib64/libglapi.so.0
/lib64/libXdamage.so.1
/lib64/libX11-xcb.so.1
/lib64/libxcb-glx.so.0
/lib64/libxcb-dri2.so.0
...
...
..
....

(9989 是正在运行的模拟器的进程 ID。)

因此安装您已经提到的驱动程序应该就足够了。

您可以仅使用模拟器和JellyBean Easter Egg来测试模拟器是否正在使用它们。 。

emulator -avd <your_avd_name> -gpu on

应该会给你带来明显更好的性能比

emulator -avd <your_avd_name> -gpu off  

一些额外信息:

如果您想尝试,您可以安装专有驱动程序 xorg-x11-drv-catalyst,来自 RPM Fussion并会在非免费存储库中找到它。

如果您没有它们,您的系统上已经有 RPM Fussion 存储库(该站点上有详细说明。)我强烈推荐它们。它们得到了很好的支持,并且比使用一些 Fedora 等效项给您带来的麻烦更少(例如,它们将 mp3 支持返回到软件包中。)

你说你是 Linux 新手(或者你的意思是在 Linux 上使用驱动程序),无论哪种方式仅供引用:安装包时你不需要包含目标平台(即 .x86_64 .i686) Yum 会排序除非您需要与您正在运行的体系结构不同的体系结构的库,否则这一点都适合您。

关于android - Fedora 64 位中的 Android 模拟器使用哪个 libGL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18507812/

相关文章:

java - Android Apk反编译似乎很容易

android - 在 MPAndroidChart 中的 x 轴上的第一个和最后一个标签上添加填充

linux - 如何准备一个 Linux 应用程序来查找 ttf 字体目录?

android - 如何在 React Native 中将 TextInput 中的输入大写?我无法通过 TextField 的 autoCapitalize 属性将句子、单词或字符大写

linux - 无法准备上下文 : path ".\r" not found

linux - 如何在 sed shell 命令中使用数组?

android - Eclipse/Android : can't install Google APIs targets

在两个模拟器之间发送的 Android 数据短信在传输过程中被截断

android - Eclipse Android SDK 错误 : unknown virtual device name

Android 高程阴影在运行时不显示