Opengl es glGetShaderInfoLog返回空字符串(android)

Opengl es glGetShaderInfoLog返回空字符串(android),opengl-es,android-2.2-froyo,Opengl Es,Android 2.2 Froyo,我正在修改OpenGl ES2.0编程指南中的2d纹理示例的android版本,以更改片段着色器。这是用纯Java编写的,不使用NDK 香草的例子在我的手机上运行得很好,但是当我更改着色器代码时,它就不再工作了。这是因为我修改的着色器没有编译(显然),但我找不到问题的原因,因为glGetShaderInfoLog返回一个空字符串 我在这个问题上做了一个搜索,显然,截至7月22日,这是一个已知的问题,但我想知道有什么方法可以绕过它。我发现的一篇帖子说他们已经为这个函数编写了一个NDK包装器,但作为

我正在修改OpenGl ES2.0编程指南中的2d纹理示例的android版本,以更改片段着色器。这是用纯Java编写的,不使用NDK

香草的例子在我的手机上运行得很好,但是当我更改着色器代码时,它就不再工作了。这是因为我修改的着色器没有编译(显然),但我找不到问题的原因,因为glGetShaderInfoLog返回一个空字符串


我在这个问题上做了一个搜索,显然,截至7月22日,这是一个已知的问题,但我想知道有什么方法可以绕过它。我发现的一篇帖子说他们已经为这个函数编写了一个NDK包装器,但作为Android开发的新手,我真的不知道该怎么做

如果有人在遇到同样的问题时发现了这个问题,我发现“绕过它”的唯一方法就是用另一个应用程序(如Rendermonkey)编译着色器。不太理想,但它让我在我的项目中走得更远

你正在遭受痛苦。我通过使用来获得一个功能正常的glGetShaderInfoLog。像这样:

import com.badlogic.gdx.backends.android.AndroidGL20;
...
AndroidGL20 gl2 = new AndroidGL20();
Log.e(TAG, gl2.glGetShaderInfoLog(shader));

我仍然将标准的GLES20包装器库用于其他所有内容,因此这很容易放入我的代码库中。这两个包装器显然可以共存而没有任何问题。

我也有同样的问题

  • 确保ApplicationManufest.xml中包含以下内容:

  • 初始化GLSurfaceView后调用此函数

  • glSurfaceView.SetEGLContextClientVersion(2)