Android 应用程序在API级别15下不工作(surfaceview的配置规范不匹配)
我可能认为某些特定函数不起作用,因为应用程序在API级别23下运行良好 然而,由于一个错误,我开发的应用程序完全失败了:Android 应用程序在API级别15下不工作(surfaceview的配置规范不匹配),android,opengl-es,glsurfaceview,Android,Opengl Es,Glsurfaceview,我可能认为某些特定函数不起作用,因为应用程序在API级别23下运行良好 然而,由于一个错误,我开发的应用程序完全失败了: 12-03 01:04:35.576 1373-1387/? E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 71 java.lang.IllegalArgumentException: No configs match configSpec at android.opengl.GLSurfaceView$Base
12-03 01:04:35.576 1373-1387/? E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 71
java.lang.IllegalArgumentException: No configs match configSpec
at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:853)
at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1009)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1362)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)
查看我的surfaceview类:
class DirectionGLSurfaceView extends GLSurfaceView {
private final DirectionGLRenderer mRenderer;
public DirectionGLSurfaceView(Context context){
super(context);
// Create an OpenGL ES 2.0 context
setEGLContextClientVersion(2);
mRenderer = new DirectionGLRenderer();
setEGLConfigChooser(8 , 8, 8, 8, 16, 0);
// Set the Renderer for drawing on the GLSurfaceView
setRenderer(mRenderer);
}
}
我似乎找不到直接的原因
编辑:我应该提到我使用虚拟设备进行测试,
“Nexus4,编辑为使用android api 15”是一个冒犯性的说法
“Nexus4,编辑为使用AndroidAPI16”实际上是有效的。(是api是唯一的区别)。您尝试选择的配置在此设备上不存在。试试另一个。@Gabeschen但那没有意义-你是说API 15没有32位颜色支持?这就是设备告诉你的GLSurfaceView.BaseConfigChooser.chooseConfig抛出了一个IllegalArgumentException,没有配置与configSpec匹配。它可能是深度,但您的设备不支持它。它也非常特定于设备-一些设备不支持这种配置(我发现有人提到中兴刀片)。这不是关于API级别,而是关于物理GPU硬件。@Gabeschen好的,值得一提的是,我选择了一个虚拟设备“nexus 4,编辑为使用android API 15”