由于我是OpenGL编程的新手,我曾尝试测试OpenGL2.0教程中显示的示例代码。应用程序编译时没有错误,但是当我尝试在模拟器中运行它时,它崩溃了。 以下是DDMS所说的:
01-08 08:03:41.365: E/AndroidRuntime(380): FATAL EXCEPTION: GLThread 8
01-08 08:03:41.365: E/AndroidRuntime(380): java.lang.IllegalArgumentException: No configs match configSpec
01-08 08:03:41.365: E/AndroidRuntime(380): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:760)
01-08 08:03:41.365: E/AndroidRuntime(380): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:916)
01-08 08:03:41.365: E/AndroidRuntime(380): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1246)
01-08 08:03:41.365: E/AndroidRuntime(380): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116)
有谁能解释一下坠机的原因?
答案 0 :(得分:3)
这是因为模拟器不支持opengl es 2,它目前只支持opengl es 1.你需要一个实际的设备来运行你的代码。
答案 1 :(得分:1)
我在最长的时间内遇到了同样的问题。我几乎放弃了。 确保在创建的surfaceview类中设置上下文客户端版本,然后再设置渲染器。
根据教程,你的calss的构造应如下所示:
public MyGLSurfaceView(Context context){
super(context);
// Create an OpenGL ES 2.0 context
setEGLContextClientVersion(2);
// Set the Renderer for drawing on the GLSurfaceView
setRenderer(new MyRenderer());
// Render the view only when there is a change in the drawing data
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
}//..