Eclipse Android模拟器无法启动。

15
我已经在Ubuntu 11.10上安装了带有Eclipse android插件(ADT)的Eclipse 4.2。当我将“Hello World”项目作为Android应用程序启动时,它根本不会启动!
在启动模拟器后,运行"ps -x > log.txt"的命令输出:
1000      7221 20.0  0.6  16884  6908 ?        D    18:11   0:00 /home/tutakhail/android-sdks/tools/emulator-arm -avd AndroidBrowser -netspeed full -netdelay none

从 shell 手动启动模拟器时,我会在不久后收到以下错误提示,之后模拟器会启动但非常缓慢。

emulator: ERROR: Could not load OpenGLES emulation library: libOpenglRender.so:    cannot open shared object file: No such file or directory
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.

有什么线索可以说明这里出了问题吗?也许与Ubuntu有关?


我使用更新后的ADT也遇到了同样的问题。从那时起,我就无法启动任何模拟器。下面的任何答案都没有帮助,其他线程中的答案也是如此 :/ 现在有解决方案吗? - reox
@reox 请检查一下我的答案是否能够帮助你,至少在问题得到解决之前是暂时的。 - tutak
我甚至没有Nvidia显卡... :( - reox
解决方法:备份模拟器。复制模拟器-arm并将其重命名为模拟器。 GPU功能将由软件模拟。 - BZ1
11个回答

15

事实证明,解决方法是将LD_LIBRARY_PATH指向/tools/lib路径。下面的方法适用于我。

➜ tools file ../tools/lib/libOpenglRender.so ../tools/lib/libOpenglRender.so: ELF 32位 LSB共享目标,Intel 80386,版本1(SYSV),动态链接,未剥离

➜ tools export LD_LIBRARY_PATH=/home/xxxx/devel/android-sdk-linux/tools/lib:$LD_LIBRARY_PATH

➜ tools ./emulator-x86 -avd AtomX86 -gpu on -qemu -m 1024 -enable-kvm

模拟器:模拟器窗口超出视图范围并已重新居中 ....


谢谢回复,根据您的建议我做了以下操作:
  1. 在shell中输入:export LD_LIBRARY_PATH="/path/to/android-sdk/lib",以使其永久生效。
  2. 输入sudo gedit /etc/ld.so.conf.d/your_lib.conf,在其中添加/lib路径。
  3. 最后更新缓存:sudo ldconfig。
虽然我不再遇到之前的错误,但是当我从CLI启动模拟器时,现在出现了“分段错误”的问题,显然我无法通过eclipse AVD管理器来运行它。
- tutak
将LD lib路径放置的目录应该是tools/lib而不是您所写的lib。但如果这不是问题,那么可能只是GPU加速与您的GPU /软件不兼容。(我曾经在一台机器上遇到过崩溃,但在另一台机器上却可以正常工作。) - parry
是的,我已将LD路径设置为Path to/android-sdk/tools/lib。我的GPU是Nvidia,我一直在阅读关于Ubuntu+NVIDIA组合可能会导致这些错误的内容。如果我解决了这个问题,我会回来发布解决方案。 - tutak

5
我猜这可能是影响ADT最新版本的一个bug,也许与NVIDIA GPU驱动程序有关。这个问题在这里被讨论:https://groups.google.com/forum/?fromgroups#!topic/adt-dev/nlA07toW1fc
我找到的解决方法是,首先从shell启动模拟器,即使它会抛出错误。然后我右键单击我的项目并选择“作为“Android应用程序”运行”。令人惊讶的是,模拟器确实可以执行它们!

4
我遇到了类似的错误,我猜测这个错误是由于缺少libGL.so造成的。
请安装libgl1-mesa-dev软件包;
sudo apt-get install libgl1-mesa-dev

Source


每次都能完美运行! - Daniel

2

首先尝试从命令行运行模拟器,以查看一切是否正常。您可能需要添加选项,例如:

-no-audio 
-gpu off

我曾看到在某些Ubuntu配置下,音频会阻止模拟器启动。


2

我尝试在Ubuntu 12.04中使用Intel硬件加速来运行KVM软件包中的模拟器。然而,我遇到了错误:“无法启动RenderThread”。安装libgl1-mesa-dev软件包并将设备RAM大小减少至512解决了我的问题。现在模拟器的速度至少提高了10倍。我希望这对于想要在支持虚拟化技术的Intel处理器上在Ubuntu中模拟Android设备的人有所帮助。


1

所以我猜可能你没有正确安装所有东西。

你应该检查是否按照以下步骤进行: http://www.wikihow.com/Install-Android-on-Ubuntu-Linux-With-Eclipse-Ide

在正确安装并设置PATH环境变量之后,还有一件事情可以做,那就是尝试删除AVD模拟器并创建一个新的,然后再试一次。

此外,我在这里找到了你的问题:https://groups.google.com/forum/?fromgroups#!topic/adt-dev/nlA07toW1fc

你提出的问题不是很具体,所以只需尝试按照步骤操作即可。


抱歉,我是一个彻头彻尾的新手 - 如何设置LD_LIBRARY_PATH变量?我正在Mac OS X上尝试在Eclipse中运行Android SDK时遵循"set LD_LIBRARY_PATH"指令,但找不到如何操作...有人可以告诉我吗? - dkugappi
在我的情况下,AVD是由另一个SDK创建的,因此我不得不将其删除并重新添加。 - V G
@DenisKugappi:OS X的粗略等效项是DYLD_LIBRARY_PATH和DYLD_FALLBACK_LIBRARY_PATH;请参见此处 - echristopherson

1

配置ANDROID_HOME

export ANDROID_HOME=//android-sdk-macosx
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

并设置LD_LIBRARY_PATH

export LD_LIBRARY_PATH="$ANDROID_HOME/emulator/lib64:$LD_LIBRARY_PATH"

运行ARM版本

cd $ANDROID_HOME/emulator/
./emulator64-arm -avd Nexus_5X_ARM_22 -no-audio -gpu off


1
如果您使用Eclipse,您需要在“项目属性”中的“Java Build Path” ->“库” ->“Android 4.4” ->“本地库位置”中添加sdk / tools / lib目录的路径。 对我来说,这是“sdk的安装目录”/ sdk /工具/ lib”

1
以下命令用于解决同样的问题,救了我的命:
sudo apt-get install libgl1-mesa-dev

1
这对我在Ubuntu 14.04上有效,并且实际运行了模拟器! - smohamed

0

libOpenglRender.so和其他必要的文件确实存在于tools/lib64中,而avd尝试在tools/lib中找到它们。 在我的情况下,创建符号链接到文件和目录有所帮助。

ln -s ../lib64/qt qt
ln -s ../lib64/gles_mesa gles_mesa
ln -s ../lib64/libstdc++ libstdc++
ln -s ../lib64/lib64GLES_V2_translator.so lib64GLES_V2_translator.so
ln -s ../lib64/lib64emugl_test_shared_library.so lib64emugl_test_shared_library.so
ln -s ../lib64/lib64OpenglRender.so lib64OpenglRender.so
ln -s ../lib64/lib64GLES_CM_translator.so lib64GLES_CM_translator.so
ln -s ../lib64/lib64EGL_translator.so lib64EGL_translator.so

(原始配置似乎存在错误,因为在安装了studio/sdk的新环境中也会出现这种情况)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接