我一直在制作一款游戏,当我的代码变得不那么混乱时,我遇到了一个空指针,所以我放弃并按住Ctrl + z(撤消)一段时间直到它停止。代码恢复正常但是当我运行它时,它会产生相同的空指针来处理一个我没有改变过的类的类。 空指针如下:
Starting programm...
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Unknown Source)
at java.io.InputStreamReader.<init>(Unknown Source)
at game.shaders.ShaderProgram.loadShader(ShaderProgram.java:98)
at game.shaders.ShaderProgram.<init>(ShaderProgram.java:25)
at game.shaders.StaticShader.<init>(StaticShader.java:34)
at game.renderEngine.MasterRenderer.<init>(MasterRenderer.java:32)
at game.engineTester.MainLoop.main(MainLoop.java:57)
ShaderProgram似乎导致第98行的问题是创建并定义了bufferedreader。 导致错误的ShaderProgram行如下:
try{
InputStream in = Class.class.getResourceAsStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(in)); // line 98, has nullpointer ???
String line;
while((line = reader.readLine())!=null){
shaderSource.append(line).append("\n");
}
reader.close();
}catch(IOException e){
e.printStackTrace();
System.exit(-1);
}
我正在使用lwjgl 这个 DOES 的来源存在,即使有些人抱怨它不是。它位于着色器包中,它是vertexShader.txt和fragmentShader.txt