我一直在开发应用程序,但我遇到了一些我无法解释的错误。 这些错误只出现在我的oneplus 3上,但没有使用google nexus 6p genymotion模拟器。
我已经搜索了几个小时但我找不到一个太棒了。
这是我的编译代码:
public static int loadShader(int shaderType, String source){
int shader = GLES20.glCreateShader(shaderType);
if (shader != 0) {
GLES20.glShaderSource(shader, source);
GLES20.glCompileShader(shader);
int[] compiled = new int[1];
GLES20.glGetShaderiv(shader,GLES20.GL_COMPILE_STATUS, compiled,0);
if (compiled[0] == 0) {
Log.e(TAG, "Could not compile shader " + shaderType + ":");
Log.e(TAG, GLES20.glGetShaderInfoLog(shader));
GLES20.glDeleteShader(shader);
shader = 0;
}
}
return shader;
}
我的片段着色器:
precision mediump float;
uniform vec4 vColor;
void main() {
gl_FragColor = vColor;
}
这是错误:
E/MyGLRenderer: Could not compile shader 35632:
E/MyGLRenderer: ERROR: 0:1: 'in' : Syntax error: syntax error
INTERNAL ERROR: no main() function!
ERROR: 1 compilation errors. No code generated.
答案 0 :(得分:1)
我通过先在我的旧星系ace 2上尝试修复它,修复了该设备上的所有错误,这一切都再次起作用。 我改变的事情: