在Eclipse IDE中执行时,我的Slick2D项目似乎运行正常,但是当我通过JarSplice导出它时,它会在类“'菜单”中抛出NullPointerException
。< / p>
以下是抛出错误的代码片段:
@Override
public void render( GameContainer gc, StateBasedGame sbg, Graphics g ) throws SlickException {
g.setColor( Color.black );
g.setFont( Options.getGameFont() );
// Draw foreground objects.
{
g.drawString( "Start", 10, gc.getHeight()-50 ); // This line here
}
}
与堆栈跟踪一起:
Sat Apr 18 17:20:59 BST 2015 ERROR:null
java.lang.NullPointerException
at org.newdawn.slick.Graphics.drawString(Graphics.java:1366)
at com.mgthomas.states.Menu.render(Menu.java:48)
at org.newdawn.slick.state.StateBasedGame.render(StateBasedGame.java:199)
at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:688)
at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:411)
at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:321)
at com.mgthomas.Launch.main(Launch.java:48)
Sat Apr 18 17:20:59 BST 2015 ERROR:Game.render() failure - check the game code.
org.newdawn.slick.SlickException: Game.render() failure - check the game code.
at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:691)
at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:411)
at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:321)
at com.mgthomas.Launch.main(Launch.java:48)
我已经添加了&#39; slick.jar&#39;并且&#39; lwjgl.jar&#39;以及所有Windows本机,到JarSplice,它出口没有任何问题。但是,当通过命令提示符运行导出的.jar文件时,将显示上面的错误。
答案 0 :(得分:0)
(对不起 - 我没有足够的声望点发表评论,所以我将此作为答案发布。)
如果你按照下面的指南添加了库jar和本机,那么它应该可以工作。
Simple guide to creating a .jar, .exe or .jnlp?
您使用的是哪个版本的Slick2D?我只是问,因为我最近使用LWJGL 2.9.2版本(2015年1月10日)将我的库更新为Slick build 237并且遇到了一些问题。最后,我使用LWJGL 2.9.0(2013年6月3日)恢复了Slick build 237。即使构建数量相同,我提出的问题是在Slick2D中发生了某些变化并使其不稳定。我在网上注意到其他人也遇到了这个版本的问题。