0

我正在播放mp3文件并获取异常。这是我的代码和堆栈跟踪。我的声音在我的工作区中。JavaFX正在播放AudioClip,InvocationTargetException

public class Main extends Application { 
//my code 
    @Override 
    public void start(Stage primaryStage) { 
     URL resource = getClass().getResource("/Alistirma/src/IkinciAlistirma/hated.mp3"); //its in my workspace 
     AudioClip clip = new AudioClip(resource.toString()); //line 21 

     final Button button = new Button("Play"); //simple button just for playing clip 
     button.setOnAction(new EventHandler<ActionEvent>() { 

      @Override 
      public void handle(ActionEvent event) { 
       // TODO Auto-generated method stub 
       clip.play(); 
      } 
     }); 
       //after here nothing important for my problem. 
       //basic FX stuff 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 

用于播放MP3只是简单的代码,但是我得到一个异常,这里是堆栈跟踪

Exception in Application start method 
java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) 
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) 
Caused by: java.lang.RuntimeException: Exception in Application start method 
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) 
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NullPointerException 
    at IkinciAlistirma.Main.start(Main.java:21) 
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863) 
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326) 
    at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294) 
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) 
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) 
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139) 
    ... 1 more 
Exception running application IkinciAlistirma.Main 
+0

可能重复[什么是空指针异常,以及如何解决它?](http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how -do-i-fix-it) – hotzst

回答

0

的问题是在这里:

URL resource = URL resource = getClass().getResource("/Alistirma/src/IkinciAlistirma/hated.mp3"); 

第一:你的MP3文件无法通过getResource(String path)方法从工作区访问。根据您的环境和IDE,它将在项目中的不同位置搜索“Alistirma/src/IkinciAlistirma/hated.mp3”。您可以通过打印getResource(".")给出的URL找到getResource(String path)搜索资源的起始点文件夹,然后扣除要放置文件的位置。如果你想保留你的文件,你仍然可以通过File课程获得。

二:为什么URL resource = URL resource =?复制/粘贴失败,我想;)?

+0

当我创建这个问题时,我改变了一些东西,并从我的代码中复制,我没有看到那部分感谢。 ^^ – MertG

+0

好的,谢谢我刚刚修复它,感谢Kwoinkwoin。寻找getResource(“。”)工作。我的目标是src文件夹,但默认目标是bin文件夹。 – MertG