2013-02-04 197 views
0

我目前正在測試Slick2D而這就是爲什麼我寫一個乒乓球比賽, 另外,在此PongGame您可以選擇音樂文件,這些文件在文件夾./musicSlick2D音樂不工作

當我運行它通過Eclipse,所有工作都完美無缺。 當我將其導出,在文件夾的所有當地人和圖書館的運行它,它也會啓動, 但音樂菜單不起作用

你可以看到代碼(當我選擇音樂這只是崩潰): https://bitbucket.org/JohnnyCrazy/pingpong/src/f2fd635ccfef/src/me/Johnny/Slick2D?at=master

Error: Mon Feb 04 13:47:05 CET 2013 ERROR:OpenAL error: Invalid 
Operation (40964) org.lwjgl.openal.OpenALException: OpenAL error: 
Invalid Operation (40964) 
     at org.lwjgl.openal.Util.checkALError(Util.java:64) 
     at org.lwjgl.openal.AL10.alDeleteBuffers(AL10.java:1097) 
     at org.newdawn.slick.openal.AudioImpl.release(AudioImpl.java:56) 
     at org.newdawn.slick.Music.release(Music.java:424) 
     at me.Johnny.Slick2D.Slick2D.setMusic(Slick2D.java:57) 
     at me.Johnny.Slick2D.MusikState.update(MusikState.java:108) 
     at org.newdawn.slick.state.StateBasedGame.update(StateBasedGame.java:278) 
     at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:678) 
     at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:456) 
     at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:361) 
     at me.Johnny.Slick2D.Slick2D.main(Slick2D.java:40) Mon Feb 04 13:47:05 CET 2013 ERROR:Game.update() failure - check the game code. 
    org.newdawn.slick.SlickException: Game.update() failure - check the 
    game code. 
     at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:684) 
     at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:456) 
     at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:361) 
     at me.Johnny.Slick2D.Slick2D.main(Slick2D.java:40) 

我不明白爲什麼它在Eclipse和出口沒有。

回答

0

構造函數Music(String)的JavaDocs不完全清楚它如何解釋String。採用String的J2SE方法通常假定它代表到File的路徑。如果是這樣,那也是失敗背後的原因。

通常,這些類型的資源在應用程序變成時。建成。嵌入式資源必須由URL訪問。有關形成URL的提示,請參閱embedded resource info. page

+0

我認爲那不是問題,因爲當我用Eclipse運行我的遊戲時,所有工作正常,我可以選擇音樂播放,我聽到它。唯一的問題是,當我將它導出時,當我選擇音樂時出現錯誤 –

+0

您的評論沒有添加我不知道和考慮的信息。我建議在1小時前嘗試通過URL訪問聲音。 * –

+0

糾正我,如果我錯了,但嵌入式資源是「嵌入到應用程序本身的二進制文件」,但它不應該是這樣的,應用程序應該掃描FOlder在罐外音樂,不在裏面。我試着用URL,但它給了我一個NullPointer –