导出的Slick2D项目的NullPointerException

时间:2015-04-18 16:38:28

标签: java eclipse slick2d jarsplice

在Eclipse IDE中执行时,我的Slick2D项目似乎运行正常,但是当我通过JarSplice导出它时,它会在类“&#39;菜单”中抛出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文件时,将显示上面的错误。

1 个答案:

答案 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中发生了某些变化并使其不稳定。我在网上注意到其他人也遇到了这个版本的问题。