旧帖子:https://stackoverflow.com/questions/29616270/shaderprogram-loadshader-throws-nullpointerexception。
我基本上遇到与以下链接中的人相同的问题:Libgdx着色器设置NullPointerException。然而,我正试图在我的桌面而不是Android虚拟仿真器上启动它。有没有办法在桌面上启用OpenGl ES 2.0?
Exception in thread "main" java.lang.NullPointerException
at com.badlogic.gdx.graphics.glutils.ShaderProgram.loadShader(ShaderProgram.java:194)
at com.badlogic.gdx.graphics.glutils.ShaderProgram.compileShaders(ShaderProgram.java:173)
at com.badlogic.gdx.graphics.glutils.ShaderProgram.<init>(ShaderProgram.java:156)
at com.badlogic.gdx.graphics.glutils.ImmediateModeRenderer20.createDefaultShader(ImmediateModeRenderer20.java:233)
at com.badlogic.gdx.graphics.glutils.ImmediateModeRenderer20.<init>(ImmediateModeRenderer20.java:56)
at com.badlogic.gdx.graphics.glutils.ShapeRenderer.<init>(ShapeRenderer.java:116)
at com.badlogic.gdx.graphics.glutils.ShapeRenderer.<init>(ShapeRenderer.java:111)
at com.badlogic.gdx.graphics.glutils.ShapeRenderer.<init>(ShapeRenderer.java:107)
at View.Maze.<init>(Maze.java:20)
at com.ratmazesprint.game.RatMazeSprintGame.<init>(RatMazeSprintGame.java:14)
at com.ratmazesprint.game.desktop.DesktopLauncher.main(DesktopLauncher.java:14)
这是代码崩溃的地方:
SpriteBatch batch;
ShapeRenderer renderer;
public Maze(){
--> renderer = new ShapeRenderer();
cam = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
cam.position.set(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2, 0);
batch = new SpriteBatch();
touchPos = new Vector3();
position = new Vector2(1, 1);
//this.cam = new OrthographicCamera(10, 7);
//this.cam.update();
//drawGrid();
//this.model = model;
model.addObserver(this);
}