0

音楽を再生する Android アプリケーションを作成しています。実行すると、NullPointer 例外が発生しますが、その理由がわかりません!!

私のアクティビティの onCreate() のコードは次のとおりです。

MediaPlayer mp = MediaPlayer.create(this, R.raw.tekno);
    mp.start();

これが私の丸太猫です:

06-03 17:09:51.520: D/MediaPlayer(19255): create failed:
06-03 17:09:51.520: D/MediaPlayer(19255): java.io.IOException: setDataSourceFD failed.: status=0x80000000
06-03 17:09:51.520: D/MediaPlayer(19255):   at android.media.MediaPlayer.setDataSource(Native Method)
06-03 17:09:51.520: D/MediaPlayer(19255):   at android.media.MediaPlayer.create(MediaPlayer.java:735)
06-03 17:09:51.520: D/MediaPlayer(19255):   at com.jlennon.gametest.PlayGameActivity.onCreate(PlayGameActivity.java:31)
06-03 17:09:51.520: D/MediaPlayer(19255):   at android.app.Activity.performCreate(Activity.java:4465)
06-03 17:09:51.520: D/MediaPlayer(19255):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-03 17:09:51.520: D/MediaPlayer(19255):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
06-03 17:09:51.520: D/MediaPlayer(19255):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
06-03 17:09:51.520: D/MediaPlayer(19255):   at android.app.ActivityThread.access$600(ActivityThread.java:123)
06-03 17:09:51.520: D/MediaPlayer(19255):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
06-03 17:09:51.520: D/MediaPlayer(19255):   at android.os.Handler.dispatchMessage(Handler.java:99)
06-03 17:09:51.520: D/MediaPlayer(19255):   at android.os.Looper.loop(Looper.java:137)
06-03 17:09:51.520: D/MediaPlayer(19255):   at android.app.ActivityThread.main(ActivityThread.java:4424)
06-03 17:09:51.520: D/MediaPlayer(19255):   at java.lang.reflect.Method.invokeNative(Native Method)
06-03 17:09:51.520: D/MediaPlayer(19255):   at java.lang.reflect.Method.invoke(Method.java:511)
06-03 17:09:51.520: D/MediaPlayer(19255):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-03 17:09:51.520: D/MediaPlayer(19255):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-03 17:09:51.520: D/MediaPlayer(19255):   at dalvik.system.NativeStart.main(Native Method)
06-03 17:09:51.530: D/AndroidRuntime(19255): Shutting down VM
06-03 16:36:23.340: W/dalvikvm(15997): threadid=1: thread exiting with uncaught exception (group=0x40a431f8)
    06-03 16:36:23.350: E/AndroidRuntime(15997): FATAL EXCEPTION: main
    06-03 16:36:23.350: E/AndroidRuntime(15997): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jlennon.gametest/com.jlennon.gametest.PlayGameActivity}: java.lang.NullPointerException
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at android.os.Handler.dispatchMessage(Handler.java:99)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at android.os.Looper.loop(Looper.java:137)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at android.app.ActivityThread.main(ActivityThread.java:4424)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at java.lang.reflect.Method.invokeNative(Native Method)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at java.lang.reflect.Method.invoke(Method.java:511)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at dalvik.system.NativeStart.main(Native Method)
    06-03 16:36:23.350: E/AndroidRuntime(15997): Caused by: java.lang.NullPointerException
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at com.jlennon.gametest.PlayGameActivity.onCreate(PlayGameActivity.java:32)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at android.app.Activity.performCreate(Activity.java:4465)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
    06-03 16:36:23.350: E/AndroidRuntime(15997):    ... 11 more

これから得られるのは、私の MediaPlayer.create() が null を返しているということです。それは私のファイルと関係があるに違いないと思います。私の音楽ファイルは tekno.wav です。

よろしくお願いします!

4

3 に答える 3

2
06-03 17:09:51.520: D/MediaPlayer(19255): java.io.IOException: setDataSourceFD failed.: status=0x80000000

なんらかの理由で、あなたの WAV ファイルが Android で読み取れないようです。関連する可能性のある情報については、以下のリンクを参照してください。

setDataSourceFd が失敗しました

MediaPlayer.setDataSource が有効なファイルに対して IOException を引き起こす

于 2012-06-04T00:50:10.250 に答える
1

を使用しないようにしてください。getApplicationContextこれは を返す可能性がありnullます。ここでもそうなったのかもしれません。

たとえば、次のようになります。

MediaPlayer mp = MediaPlayer.create(this, R.raw.tekno);
于 2012-06-03T23:42:25.897 に答える
0

これを試して:

MediaPlayer mp = MediaPlayer.create(this, R.raw.tekno);
mp.start();
于 2012-06-03T23:45:20.473 に答える