安卓OpenGL应用在加载到模拟器后停止工作

11

我的OpenGL应用程序都出现了“名称停止工作”的问题。即使是Android示例项目(BasicGLSurfaceView)也会出现这种情况。当我将这些项目加载到Cclipse中并运行它们时,它们不起作用,但是如果我运行模拟器并通过API Demos选择它,则它可以完美地运行。我正在使用最新的Eclipse和API 14.0。这也发生在我的应用程序中,看起来它们很完美。

以下是从简单加载到Eclipse并运行的BasicGLSurfaceView:

崩溃时的Logcat记录-----------------

11-19 21:35:52.887: E/AndroidRuntime(556): FATAL EXCEPTION: GLThread 75
11-19 21:35:52.887: E/AndroidRuntime(556): java.lang.IllegalArgumentException: No configs match configSpec
11-19 21:35:52.887: E/AndroidRuntime(556):  at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:825)
11-19 21:35:52.887: E/AndroidRuntime(556):  at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:981)
11-19 21:35:52.887: E/AndroidRuntime(556):  at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1335)
11-19 21:35:52.887: E/AndroidRuntime(556):  at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1189)

控制台--------------------------------

[2011-11-19 21:34:40 - BasicGLSurfaceView] New emulator found: emulator-5554
[2011-11-19 21:34:40 - BasicGLSurfaceView] Waiting for HOME('android.process.acore')   to be launched...
[2011-11-19 21:35:16 - BasicGLSurfaceView] WARNING: Application does not specify an API level requirement!
[2011-11-19 21:35:16 - BasicGLSurfaceView] Device API version is 14 (Android 4.0.1)
[2011-11-19 21:35:16 - BasicGLSurfaceView] HOME is up on device 'emulator-5554'
[2011-11-19 21:35:16 - BasicGLSurfaceView] Uploading BasicGLSurfaceView.apk onto device 'emulator-5554'
[2011-11-19 21:35:16 - BasicGLSurfaceView] Installing BasicGLSurfaceView.apk...
[2011-11-19 21:35:49 - BasicGLSurfaceView] Success!
[2011-11-19 21:35:50 - BasicGLSurfaceView] Starting activity com.example.android.basicglsurfaceview.BasicGLSurfaceViewActivity on device emulator-5554
[2011-11-19 21:35:52 - BasicGLSurfaceView] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.android.basicglsurfaceview/.BasicGLSurfaceViewActivity }

1
你的代码中有这一行吗:myGLSurfaceView.setEGLConfigChooser(true);myGLSurfaceView.setRenderer(graphicsRenderer); 之前?根据我的经验,模拟器不适合OpenGL相关的东西。与在实际设备上运行OpenGL应用程序相比,模拟器要慢得多,有时甚至会超时,导致Android认为你的应用程序已经崩溃。调试模式和/或在较慢的计算机上都会减慢模拟器的速度。我记得曾经有一段时间,模拟器实际上并不支持OpenGL-ES 2.0特定的功能。基本上,首先尝试在设备上运行应用程序。 - James Coote
我了解到模拟器不兼容GLES 2。 - user1055947
5个回答

20

一年过去了,但我希望我能帮助其他不幸的人!

你忘记在仿真中添加 GPU 模拟 硬件属性并将其值设置为 yes。请添加它们并尝试。


这个绝对应该加入教程作为附注! - Thierry
@user1807862 这对我没有用。我可以很好地运行open gl 1,但运行2会给我与OP相同的错误。然而,你建议的并没有帮助。 - michaelsnowden

2

2

1
提示: 不要使用模拟器。连接您正在使用的设备。应该有有关设置它的文档。之后,如果设备已插入,当您启动应用程序时它将显示出来。

同意。这样做速度更快,而且你可以在生产环境中测试所有内容! - agelbess

0

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