Java 声音不响
当我尝试播放声音时,会出现错误:Java 声音不响,java,audio,nullpointerexception,Java,Audio,Nullpointerexception,当我尝试播放声音时,会出现错误: java.lang.NullPointerException at sun.applet.AppletAudioClip.<init>(Unknown Source) at java.applet.Applet.newAudioClip(Unknown Source) at com.artem.megatale.Sound.<init>(Sound.java:13) at com.artem.megatal
java.lang.NullPointerException
at sun.applet.AppletAudioClip.<init>(Unknown Source)
at java.applet.Applet.newAudioClip(Unknown Source)
at com.artem.megatale.Sound.<init>(Sound.java:13)
at com.artem.megatale.Sound.<clinit>(Sound.java:7)
at com.artem.megatale.Level.building(Level.java:340)
at com.artem.megatale.Level.tick(Level.java:371)
at com.artem.megatale.Component.tick(Component.java:111)
at com.artem.megatale.Component.run(Component.java:212)
at java.lang.Thread.run(Unknown Source)
Exception in thread "Thread-4" java.lang.NullPointerException
at com.artem.megatale.Sound$1.run(Sound.java:23)
Exception in thread "Thread-5" java.lang.NullPointerException
at com.artem.megatale.Sound$1.run(Sound.java:23)
我使用sound.blockBreak.play()播放声音代码>
声音存储在res/sound/文件中,并存储在jar文件中。
我尝试更改blockBreak=新声音(“/sounds/break_stone.wav”)代码>到blockBreak=新声音(“res/sounds/break_stone.wav”)代码>但我仍然得到错误
有人要我的软件包截图:
有人还说我应该放弃“尝试并捕获”,于是我又犯了一个错误:
Exception in thread "Thread-3" java.lang.ExceptionInInitializerError
at com.artem.megatale.Level.building(Level.java:340)
at com.artem.megatale.Level.tick(Level.java:371)
at com.artem.megatale.Component.tick(Component.java:111)
at com.artem.megatale.Component.run(Component.java:212)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at sun.applet.AppletAudioClip.<init>(Unknown Source)
at java.applet.Applet.newAudioClip(Unknown Source)
at com.artem.megatale.Sound.<init>(Sound.java:13)
at com.artem.megatale.Sound.<clinit>(Sound.java:7)
... 5 more
我假设res/sound
存储在Jar中,并且它是sound
或sounds
?如果您上传错误日志,或者确保NullPointerException
在sound
变量声明中抛出,这可能会有所帮助。此外,包结构的方案或屏幕截图也有助于解决问题。不要过度夸张,删除不必要的try捕获,让实际异常直接发生(虽然您正在打印堆栈跟踪,但仍然会丢失它们)。只需让原始根本原因代码触发异常。然后你将知道确切的原因,你将能够修改和纠正例外的实际原因。我做了你所说的,并更新了问题
Exception in thread "Thread-3" java.lang.ExceptionInInitializerError
at com.artem.megatale.Level.building(Level.java:340)
at com.artem.megatale.Level.tick(Level.java:371)
at com.artem.megatale.Component.tick(Component.java:111)
at com.artem.megatale.Component.run(Component.java:212)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at sun.applet.AppletAudioClip.<init>(Unknown Source)
at java.applet.Applet.newAudioClip(Unknown Source)
at com.artem.megatale.Sound.<init>(Sound.java:13)
at com.artem.megatale.Sound.<clinit>(Sound.java:7)
... 5 more
Sound.blockBreak.play();