gpt4 book ai didi

播放声音时出现 Javafx NullPointerException

转载 作者:行者123 更新时间:2023-12-03 02:28:31 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do I determine the correct path for FXML files, CSS files, Images, and other resources needed by my JavaFX Application?

(1 个回答)


1年前关闭。




我正在开发 Javafx 游戏,并一直在尝试使用以下代码实现一些声音:

URL laserResource = getClass().getResource("LaserBlast.wav");
AudioClip laserPlayer = new AudioClip(laserResource.toString());

此代码在任何方法之前在主类中实例化。我有一个名为 JavaFxImages 的模块,其中包含我的所有资源,包括我的声音,并且我已经能够通过诸如 Image asteroid = new Image("Asteroid.png"); 之类的代码从文件夹中成功访问 ImageView 的图像。 .
但是,当我运行我的游戏时,我的音频剪辑线路出现 NullPointerException。在过去的许多小时里,我一直在研究和尝试各种不同的方式来访问这个资源。我尝试了 URL 的许多排列(“JavaFxImages/LaserBlast.wav”、Desktop/JavaFxImages/LaserBlast.wav 等),但每次它都有相同的错误。我真的不知道是什么代码有问题。我将不胜感激任何可以提供的帮助。
提前致谢!

完整的错误信息如下。

Error Message:
Exception in Application constructor
Exception in thread "main" java.lang.RuntimeException: Unable to construct Application instance: class sample.Main
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:907)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$156(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:819)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$174(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Caused by: java.lang.NullPointerException
at sample.Main.<init>(Main.java:76)
... 10 more

最佳答案

您的错误主要发生在 Itellij IDEA - Javafx Project
代替:

URL laserResource = getClass().getResource("LaserBlast.wav");
AudioClip laserPlayer = new AudioClip(laserResource.toString());
采用:
//By default your Package_NAME is: sample
File laserResource = new File("src/Package_NAME/LaserBlast.wav");
AudioClip laserPlayer = new AudioClip(laserResource.toURI().toString());

关于播放声音时出现 Javafx NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37017207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com