“线程中的异常”;“主要”;编码中的java.lang.NullPointerException
我很确定这些问题已经被问了数百万次,但不幸的是,我找不到答案“线程中的异常”;“主要”;编码中的java.lang.NullPointerException,java,Java,我很确定这些问题已经被问了数百万次,但不幸的是,我找不到答案 Exception in thread "main" java.lang.NullPointerException at com.bluebitgames.visualnovel.Game.initStatesList(Game.java:30) at org.newdawn.slick.state.StateBasedGame.init(StateBasedGame.java:164) at org.newd
Exception in thread "main" java.lang.NullPointerException
at com.bluebitgames.visualnovel.Game.initStatesList(Game.java:30)
at org.newdawn.slick.state.StateBasedGame.init(StateBasedGame.java:164)
at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:390)
at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:314)
at com.bluebitgames.visualnovel.Game.main(Game.java:77)
我知道java.lang.NullPointerException意味着变量有一个空值,因此我必须更改它,但我真的不知道
package com.bluebitgames.visualnovel;
import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.UnicodeFont;
import org.newdawn.slick.font.effects.ColorEffect;
import org.newdawn.slick.state.StateBasedGame;
public class Game extends StateBasedGame {
public static final int SCREEN_WIDTH = 1024;
public static final int SCREEN_HEIGHT = 640;
public static final String title = "Visual Novel";
public static final String version = "";
public static final String vDate = "03/07/12";
// States
public static final int menu = 0;
public static final int play = 1;
// Main font
public static UnicodeFont font;
public Game(String title) {
super(title);
this.addState(new Play(play));
}
public void initStatesList(GameContainer gc) throws SlickException {
this.getState(menu).init(gc, this); //line 30
this.getState(play).init(gc, this);
this.enterState(menu);
}
@SuppressWarnings("unchecked")
public static UnicodeFont mainFont(int size, String name) {
if(name.equals("default")) {
name = "tempesta";
}
UnicodeFont font;
try {
font = new UnicodeFont("res/fonts/"+name+".ttf", size, false, false);
font.addAsciiGlyphs();
font.addGlyphs(400, 600);
font.getEffects().add(new ColorEffect(java.awt.Color.WHITE));
font.loadGlyphs();
return font;
} catch(SlickException e) {
System.out.println("Could not load font.");
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
String os = System.getProperty("os.name");
if(os.contains("Windows")) {
os = "windows";
} else if(os.contains("Mac")) {
os = "macosx";
} else {
os = "linux";
}
System.setProperty("org.lwjgl.librarypath",System.getProperty("user.dir") + "/lib/natives/"+os);
AppGameContainer agc;
try {
agc = new AppGameContainer(new Game(title+" v"+version));
agc.setDisplayMode(SCREEN_WIDTH, SCREEN_HEIGHT, false);
//agc.setFullscreen(true);
agc.setTargetFrameRate(60);
agc.setShowFPS(true);
agc.setVSync(true);
agc.start(); //line 77
} catch(SlickException e) {
e.printStackTrace();
}
}
}
(StateBasedGame和AppGameContainer是一个名为'Slick'的.jar类,我不知道如何为它编写代码。对不起!)
我希望有人能帮我解决这个问题
编辑:很抱歉。刚刚编辑了它。我不知道,但是您似乎在构造函数中添加播放状态,而不是菜单状态,并且当您尝试调用菜单状态的方法时,似乎会抛出NPE。我是SWAG,但也许您也应该在构造函数中初始化菜单状态
如果这是错误的,请原谅1000次,并删除一个答案。我不知道,但您似乎在构造函数中添加了播放状态,而不是菜单状态,并且当您尝试调用菜单状态的方法时,似乎会抛出NPE。我是SWAG,但也许您也应该在构造函数中初始化菜单状态
如果这是错误的,请原谅1000次,并删除一个答案。我不知道,但您似乎在构造函数中添加了播放状态,而不是菜单状态,并且当您尝试调用菜单状态的方法时,似乎会抛出NPE。我是SWAG,但也许您也应该在构造函数中初始化菜单状态
如果这是错误的,请原谅1000次,并删除一个答案。我不知道,但您似乎在构造函数中添加了播放状态,而不是菜单状态,并且当您尝试调用菜单状态的方法时,似乎会抛出NPE。我是SWAG,但也许您也应该在构造函数中初始化菜单状态
如果这是错误的,请原谅1000次,并删除答案。您似乎缺少“菜单”状态。我建议尝试在构造函数中添加这样的状态,应该像下面这样简单
public Game(String title) {
super(title);
this.addState(new Play(play));
this.addState(new Menu(menu)); // Assuming you have a Menu somewhere...
}
您似乎缺少“菜单”状态。我建议尝试在构造函数中添加这样的状态,应该像下面这样简单
public Game(String title) {
super(title);
this.addState(new Play(play));
this.addState(new Menu(menu)); // Assuming you have a Menu somewhere...
}
您似乎缺少“菜单”状态。我建议尝试在构造函数中添加这样的状态,应该像下面这样简单
public Game(String title) {
super(title);
this.addState(new Play(play));
this.addState(new Menu(menu)); // Assuming you have a Menu somewhere...
}
您似乎缺少“菜单”状态。我建议尝试在构造函数中添加这样的状态,应该像下面这样简单
public Game(String title) {
super(title);
this.addState(new Play(play));
this.addState(new Menu(menu)); // Assuming you have a Menu somewhere...
}
就像你必须读过的任何NPE问题一样,关键是确定哪一行抛出了它。那是哪一个呢?哪一行是第30行,
Game.java:30
正如异常stacktrace告诉您的那样?正如我所想,那么也许我的答案和Elliott的答案都是正确的。正如您必须阅读的任何NPE问题一样,关键是确定哪一行抛出了它。那是哪一个呢?哪一行是第30行,Game.java:30
正如异常stacktrace告诉您的那样?正如我所想,那么也许我的答案和Elliott的答案都是正确的。正如您必须阅读的任何NPE问题一样,关键是确定哪一行抛出了它。那是哪一个呢?哪一行是第30行,Game.java:30
正如异常stacktrace告诉您的那样?正如我所想,那么也许我的答案和Elliott的答案都是正确的。正如您必须阅读的任何NPE问题一样,关键是确定哪一行抛出了它。那是哪一个呢?哪一行是第30行,Game.java:30
正如异常stacktrace告诉您的那样?正如我所想,那么也许我和Elliott的答案都是正确的。非常感谢您的回答。说到Java,我真是个笨蛋,因为我刚从一种编码类型转换到另一种编码类型。再次感谢!非常感谢你的回答。说到Java,我真是个笨蛋,因为我刚从一种编码类型转换到另一种编码类型。再次感谢!非常感谢你的回答。说到Java,我真是个笨蛋,因为我刚从一种编码类型转换到另一种编码类型。再次感谢!非常感谢你的回答。说到Java,我真是个笨蛋,因为我刚从一种编码类型转换到另一种编码类型。再次感谢!谢谢你的回答。我犯了一个很大的错误。谢谢你指出这一点。@Colby,为什么每个人都知道SWAG是什么,一个愚蠢的野驴,…我猜。对,那,;这是滴答声!谢谢你的回答。我犯了一个很大的错误。谢谢你指出这一点。@Colby,为什么每个人都知道SWAG是什么,一个愚蠢的野驴,…我猜。对,那,;这是滴答声!谢谢你的回答。我犯了一个很大的错误。谢谢你指出这一点。@Colby,为什么每个人都知道SWAG是什么,一个愚蠢的野驴,…我猜。对,那,;这是滴答声!谢谢你的回答。我犯了一个很大的错误。谢谢你指出这一点。@Colby,为什么每个人都知道SWAG是什么,一个愚蠢的野驴,…我猜。对,那,;这是滴答声!