【问题标题】:Eclipse Android Emulator won't launchEclipse Android 模拟器不会启动
【发布时间】:2012-07-25 08:02:48
【问题描述】:

我已经在 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 有关?

【问题讨论】:

  • 我在更新广告时遇到了同样的问题。从那以后我无法启动任何模拟器。下面的答案都没有帮助,其他线程中的答案也没有:/还有解决方案吗?
  • @reox 请检查我的回答是否可以帮助您,至少暂时解决问题。
  • 不,我什至没有nvidia卡... :(
  • 解决方法:备份模拟器。复制 emulator-arm 并将其重命名为 emulator。然后,GPU 功能将由软件模拟。

标签: android eclipse ubuntu opengl-es adt


【解决方案1】:

原来解决方案是将 LD_LIBRARY_PATH 指向 /tools/lib 路径。 下面对我有用。

➜ 工具文件 ../tools/lib/libOpenglRender.so ../tools/lib/libOpenglRender.so:ELF 32 位 LSB 共享对象,Intel 80386,版本 1 (SYSV),动态链接,未剥离

➜ 工具导出 LD_LIBRARY_PATH=/home/xxxx/devel/android-sdk-linux/tools/lib:$LD_LIBRARY_PATH

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

仿真器:仿真器窗口不在视野范围内,并已居中 ....

【讨论】:

  • 感谢您的回复,这就是我根据您所说的所做的: 1.in 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 管理器运行
  • 放入 LD lib 路径的目录应该是 tools/lib 而不是你写的 lib。但如果这不是问题,那么可能只是 GPU 加速与您的 gpu / 软件不兼容。 (我已经让它在一台机器上崩溃并在另一台机器上炒锅。)
  • 是的,我确实将 LD 路径作为 /android-sdk/tools/lib 的路径。我的 GPU 是 Nvidia,我一直在读到 Ubuntu+NVIDIA 的组合会导致这些错误。如果我解决了问题,我会重新发布解决方案。
【解决方案2】:

我猜这是一个影响最新版本 ADT 的错误,可能与 NVIDIA GPU 驱动程序有关。这个问题在这里讨论:

https://groups.google.com/forum/?fromgroups#!topic/adt-dev/nlA07toW1fc

我发现至少可以让我执行我的应用程序直到发布永久解决方案的解决方法是,首先从 shell 启动模拟器,即使它抛出错误。之后,我右键单击并将我的项目作为“Android 应用程序”运行。模拟器确实令人惊讶地执行它们!

【讨论】:

    【解决方案3】:

    我也遇到过类似的错误,我猜这个错误是因为缺少 libGL.so 造成的。

    安装包 libgl1-mesa-dev;

    sudo apt-get install libgl1-mesa-dev
    

    Source

    【讨论】:

    • 每次都像魅力一样工作!
    【解决方案4】:

    尝试先从命令行运行emulator,看看是否一切顺利。 您可能需要添加如下选项:

    -no-audio 
    -gpu off
    

    我看到音频阻止模拟器在某些 Ubuntu 配置上启动。

    【讨论】:

      【解决方案5】:

      我尝试使用 Ubuntu 12.04 中的英特尔硬件加速来运行使用 KVM 包的模拟器。但是我收到了错误“无法启动 RenderThread”。安装包 libgl1-mesa-dev 并将 Device RAM Size 减少到 512 解决了我的问题。现在的模拟器确实快了至少 10 倍。我希望这对尝试使用支持虚拟化技术的英特尔处理器在 Ubuntu 中模拟 android 设备的人有所帮助。

      【讨论】:

        【解决方案6】:

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

        您应该检查您是否按照以下步骤操作: 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 时遵循“设置 LD_LIBRARY_PATH”指令,但找不到如何执行此操作...有人可以告诉我吗?
        • 在我的例子中,AVD 是由另一个 SDK 创建的,我不得不将其删除并重新添加。
        • @DenisKugappi:粗略的 OS X 等效项是 DYLD_LIBRARY_PATH 和 DYLD_FALLBACK_LIBRARY_PATH;见here。
        【解决方案7】:

        以下命令在同样的问题上救了我的命

        sudo apt-get install libgl1-mesa-dev
        

        【讨论】:

        • 在 ubuntu 14.04 上为我工作并实际运行了模拟器!
        【解决方案8】:

        如果使用 eclipse,你必须在“Java Build Path”-> Libraries -> Android 4.4 ->“Native library location”中添加 Project-Properties 到 sdk/tools/lib 目录的路径。 对我来说,这是“install-dir-of-sdk”/sdk/tools/lib”

        【讨论】:

          【解决方案9】:

          配置 ANDROID_HOME

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

          并设置 LD_LIBRARY_PATH

          导出 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

          【讨论】:

            【解决方案10】:

            我通过安装 32 位 libGL 在我的 Red Hat Linux 64 位上解决了这个问题(它应该位于 /usr/lib/)

             sudo yum install mesa-libGL.i686
            

            【讨论】:

              【解决方案11】:

              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 时会发生这种情况)

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2012-05-21
                • 1970-01-01
                • 1970-01-01
                • 2016-10-21
                • 2019-07-31
                • 1970-01-01
                • 2012-12-17
                • 2011-04-04
                相关资源
                最近更新 更多