我的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 }
myGLSurfaceView.setEGLConfigChooser(true);
在myGLSurfaceView.setRenderer(graphicsRenderer);
之前?根据我的经验,模拟器不适合OpenGL相关的东西。与在实际设备上运行OpenGL应用程序相比,模拟器要慢得多,有时甚至会超时,导致Android认为你的应用程序已经崩溃。调试模式和/或在较慢的计算机上都会减慢模拟器的速度。我记得曾经有一段时间,模拟器实际上并不支持OpenGL-ES 2.0特定的功能。基本上,首先尝试在设备上运行应用程序。 - James Coote