命令glUniformMatrix4fv上的Android OpenGL20错误

命令glUniformMatrix4fv上的Android OpenGL20错误,android,opengl-es,matrix,opengl-es-2.0,Android,Opengl Es,Matrix,Opengl Es 2.0,我在以下命令中遇到错误: @Override public void onDrawFrame(GL10 gl) { Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0); // ******************************************************************* GLES20.glUniformMatrix4fv(muMVPMatrixHandle,

我在以下命令中遇到错误:

@Override
public void onDrawFrame(GL10 gl) {
    Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0);

    // *******************************************************************
    GLES20.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, mMVPMatrix, 0);
    // *******************************************************************
    Utils.checkGlError("glUniformMatrix4fv muMVPMatrixHandle");

    GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
    Utils.checkGlError("glClear GL_COLOR_BUFFER_BIT");

    GLES20.glFrontFace(GLES20.GL_CW);
    Utils.checkGlError("glFrontFace GL_CW");

    GLES20.glUseProgram(mProgram);
    Utils.checkGlError("glUseProgram mProgram");

    drawFrame();
}
我也不知道问题出在哪里!这部分代码取自android开发指南上的一个示例。。。 当我调试代码时,我可以看到muMVPMatrixHandle不是-1,它是一个有效值,而且mMVPMatrix似乎也是有效的。
如果有帮助,错误代码为1282…

这主要是猜测,但我认为在将值分配到着色器之前应该移动glUseProgram(mProgram)。通过将glUseProgram命令移动到Glusniformmatrix4fv命令上方解决了此问题。编辑:harism,刚刚在解决问题后看到你的评论。但这确实起到了作用,所以请进行投票:)这主要是一个猜测,但我认为在将值分配到着色器之前,应该移动glUseProgram(mProgram)。通过将glUseProgram命令移动到Glusniformmatrix4fv命令上方解决了此问题。编辑:harism,刚刚在解决问题后看到你的评论。但这确实起到了作用,所以请投赞成票:)