导出的 Slick2D 项目出现 NullPointerException
NullPointerException on exported Slick2D project
我的 Slick2D 项目在 Eclipse IDE 中执行时似乎 运行 没问题,但是当我通过 JarSplice 导出它时,它会在 class 'Menu'.
下面是引发错误的代码片段:
@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)
我已经将 'slick.jar' 和 'lwjgl.jar' 以及所有 windows 本机添加到 JarSplice,并且它可以毫无问题地导出。但是通过命令提示符导出的.jar文件为运行时,出现如上错误
(抱歉 - 我没有足够的声誉点数来 post 发表评论,所以我 post 将此作为答案。)
如果您按照下面的指南添加了库 jar 和 natives,那么它应该可以工作。
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 中的某些内容发生了变化并使其不稳定。我在网上注意到其他人也遇到过该构建的问题。
我的 Slick2D 项目在 Eclipse IDE 中执行时似乎 运行 没问题,但是当我通过 JarSplice 导出它时,它会在 class 'Menu'.
下面是引发错误的代码片段:
@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)
我已经将 'slick.jar' 和 'lwjgl.jar' 以及所有 windows 本机添加到 JarSplice,并且它可以毫无问题地导出。但是通过命令提示符导出的.jar文件为运行时,出现如上错误
(抱歉 - 我没有足够的声誉点数来 post 发表评论,所以我 post 将此作为答案。)
如果您按照下面的指南添加了库 jar 和 natives,那么它应该可以工作。
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 中的某些内容发生了变化并使其不稳定。我在网上注意到其他人也遇到过该构建的问题。