Android 应用程序在API级别15下不工作(surfaceview的配置规范不匹配)

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

我可能认为某些特定函数不起作用,因为应用程序在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$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”