【问题标题】:emulator: WARNING: Could not initialize OpenglES emulation, using software renderer模拟器:警告:无法使用软件渲染器初始化 OpenglES 模拟
【发布时间】:2013-03-13 11:37:07
【问题描述】:

Android 模拟器中的这些错误消息是什么意思?

Starting emulator for AVD 'AVD'
Failed to create Context 0x3005
could not get wglGetExtensionsStringARB
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB

【问题讨论】:

  • 你有解决办法吗?
  • 正确的显卡驱动安装消除了这个错误

标签: android android-emulator avd


【解决方案1】:

导出 LD_LIBRARY_PATH="/home//Android/Sdk/tools/lib64:$LD_LIBRARY_PATH"

cd /home/nazmul/Android/Sdk/tools

./emulator64-x86 -avd -gpu on

这个命令可以在我的笔记本电脑上运行。

【讨论】:

  • 啊,谢谢 - 为什么文档中没有这个 - 还是我错过了??
  • 你可以从我的 github 找到这个。
【解决方案2】:

还有一个提示...检查您是否不在虚拟机上...我的意思是您应该在真机上。

【讨论】:

    【解决方案3】:

    您必须使用您的 android 设备规范,例如 RAM、Heap 其他规范。

    很难告诉你哪个必须设置为什么。就我而言,我将 RAM 设置为 512 和 Heap 128 以使其工作。

    【讨论】:

      【解决方案4】:


      我认为 Gerd 的解决方案是最有帮助的。

      万一有人偶然发现这个,更详细和完整的解决方案......

      vanilla studio.sh starter-shell 脚本设置了一个环境变量:

      LD_LIBRARY_PATH="$IDE_BIN_HOME:$LD_LIBRARY_PATH"
      

      然后导出。 IDE_BIN_HOME 是通过使用 studio.sh 文件的位置来设置的(在中间的某个位置 - 通常是 [android-studio]/bin)。 当通过 Studio->Manger->Tools->Manage AVDs 启动模拟器时,此 env-var 以 android-SDK/tools/bin 为前缀。 这意味着当你独立启动它时,你没有设置那个 env-var。 Gerd 的解决方案将 lib 添加到系统 lib-search-path 中。 另一种方法是创建一个处理此问题的包装器,以便仅在需要时设置它并且(可能)还设置其他东西。

      #!/bin/bash
      export JAVA_HOME="/usr/lib/jvm/java-BLAH"
      export STUDIO_JDK="$JAVA_HOME"     #This is also used in studio.sh
      export IDE_BIN_HOME="/home/you/android-studio/bin"
      export Anroid_SDK="/home/you/android-sdk"
      export LD_LIBRARY_PATH="$Anroid_SDK/tools/lib:$IDE_BIN_HOME:$LD_LIBRARY_PATH"
      
      cd "$Anroid_SDK/tools"
      
      ./emulator64-x86 -avd AVD-NAME-1 -gpu on &
      ./emulator64-arm -avd AVD-NAME-2
      

      这可能有点过头了,但它是完整的;) 根据 Distro/Setup 可能会预设 JAVA_HOME,因此您可以删除该行。如果你经常使用模拟器,你还可以添加类似的东西

      export LD_LIBRARY_PATH="[YOUR Studio PATH]/tools/lib:$LD_LIBRARY_PATH"
      

      到您的 .bashrc 或 .profile 文件。

      但要回答实际问题:这意味着模拟器无法运行(硬件加速?)OpenGLES,并且它正在使用软件例程来实现/模拟 OpenGLES:D 要使模拟器能够找到所需的库,请确保您安装了正确的 (3D-Accel.?) 显卡驱动程序,然后选择上述之一(包装器外壳或 (bash-)session-init 设置)。

      请注意,较新版本的 Android-Studio 已分叉出 SDK

      【讨论】:

        【解决方案5】:

        从命令行启动模拟器时 - $ emulator64-arm -avd GalaxyS2 - 我收到了类似(也许/希望)的相关消息:

        模拟器:错误:无法加载 OpenGLES 仿真库:lib64OpenglRender.so:无法打开共享对象文件:没有这样的文件或目录

        我通过locate 找到了这个文件lib64OpenglRender.so。它位于android-sdk-linux-dir 的tools/lib-子目录中。

        所以我创建了/etc/ld.so.conf.d/android_stuff.conf(您当然可以将以下行添加到该目录中的另一个 *.conf 文件中)并放入一行:

        path_to_android-sdk-linux_directory/tools/lib

        然后调用配置工具:ldconfig(只是没有任何参数)并且(至少在我的情况下)错误消息消失了。

        【讨论】:

        【解决方案6】:

        即使我有512 MBRAM,我也有同样的问题。我通过“删除”旧模拟器并重新创建新模拟器来解决。我仍然不知道这个问题的原因。这个问题还没有被 Google Developers 关闭。希望我的解决方案对其他人有所帮助。

        【讨论】:

          【解决方案7】:

          确保为您的显卡安装正确的驱动程序。我遇到了完全相同的错误。

          【讨论】:

            【解决方案8】:

            这意味着链接器在您的系统上找不到 OpenglES 库。您可以尝试安装这些。

            在 Fedora 上,这似乎解决了问题:

            > yum install mesa-libGLw.i686
            

            这里有一些相关信息:http://www.redips.net/android/emulator-fedora-linux/

            编辑:对于与 Windows 相关的事情,this answer 似乎可以做你想做的事。

            【讨论】:

            • 实际上,我是 android 的新手。在更新安装 API 2.1、2.2 之后,我打开 AVD 管理器创建模拟器,然后在加载过程中打开模拟器,我看到了这个错误。我正在使用 Windows 7 64 位
            • 并且模拟器高度不适合屏幕并且没有出现模拟器键盘。在安装 api 2.1、2.2...之前它工作正常。
            • 我对 Windows 端不熟悉。您不需要 mips 系统映像
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-08-22
            • 2016-02-03
            • 1970-01-01
            • 1970-01-01
            • 2014-09-09
            • 1970-01-01
            相关资源
            最近更新 更多