我已成功在 VirtualBox 上安装了 Android x86 4.0,并尝试让 OpenGL 应用程序运行。我在 VirtualBox 设置中启用了“3D 加速”,但当我打开应用程序时,它立即崩溃并记录
java.lang.IllegalArgumentException: No configs match configSpec
我尝试了 0xbenchmark 3D 测试(0xbenchmark 是 Android-x86 自带的测试应用程序)。它运行完美。编辑:我不确定为什么会这样,因为其他 OpenGL 应用程序似乎都无法运行。也许 Android-x86 实际上不支持 GLES 2.0
我该怎么做才能让所有 OpenGL 应用程序在 VirtualBox 上运行?
编辑:我之前忘记包含堆栈跟踪了,所以这里是(来自 logcat):
E/AndroidRuntime( 1681): FATAL EXCEPTION: GLThread 146
E/AndroidRuntime( 1681): java.lang.IllegalArgumentException: No configs match configSpec
E/AndroidRuntime( 1681): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:863)
E/AndroidRuntime( 1681): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1024)
E/AndroidRuntime( 1681): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1401)
E/AndroidRuntime( 1681): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
答案1
经过一番广泛的搜索和测试,我找到了解决方案。问题是 VirtualBox 的虚拟图形驱动程序实际上并不完全支持 OpenGL。我需要的是可以将我电脑自己的 GPU 传递到 Android 虚拟环境中的东西。我找到了可以做到这一点的东西,安卓虚拟机。它的 Android 版本具有自定义编写的驱动程序,可在 VirtualBox 中无缝运行,并且它带有自己的播放器,可使用主机的物理 GPU 模拟 GLES。使用 AndroVM 及其播放器,我能够成功运行所有 OpenGL 应用程序。