0

生のフォルダーに保存されているサウンドを再生するためのメディア ファイル アプリを開発しています。全部で約32音あります。そして、これは私が各ボタンをクリックして行っていることです:

Button btnGrowUp = (Button) this.findViewById(R.id.GrowUp);
btnGrowUp.setOnClickListener(btnGrowUpListener);

private OnClickListener btnGrowUpListener = new OnClickListener()
{
    public void onClick(View v)
    {
        //Toast.makeText(getBaseContext(), "Grow Up audio file is being played", Toast.LENGTH_SHORT).show();

        MediaPlayer mp = MediaPlayer.create(MainScreen.this, R.raw.growup);
        mp.start();
    }
};

「アプリが予期せず停止する」という実行時例外が発生し、logcat ウィンドウに次のメッセージが表示されます。

12-19 12:33:05.420: 警告/dalvikvm(699): threadid=3: スレッドが終了しています
キャッチされない例外あり (group=0x4000fe70)
12-19 12:33:05.441: エラー/AndroidRuntime(699): キャッチされていないハンドラー:
例外がキャッチされていないため、スレッドのメインが終了します
12-19 12:33:05.460: エラー/AndroidRuntime(699):
java.lang.NullPointerException
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
com.myapps.media.MainScreen$8.onClick(MainScreen.java:244)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.view.View.performClick(View.java:2179)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.view.View.onTouchEvent(View.java:3828)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.widget.TextView.onTouchEvent(TextView.java:6291)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.view.View.dispatchTouchEvent(View.java:3368)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
com.android.internal.policy.impl.PhoneWindow
$DecorView.superDispatchTouchEvent(PhoneWindow.java:1707)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent
(PhoneWindow.java:1197)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.app.Activity.dispatchTouchEvent(Activity.java:1993)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
com.android.internal.policy.impl.PhoneWindow
$DecorView.dispatchTouchEvent(PhoneWindow.java:1691)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.view.ViewRoot.handleMessage(ViewRoot.java:1525)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.os.Handler.dispatchMessage(Handler.java:99)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
android.os.Looper.loop(Looper.java:123)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
Android.app.ActivityThread.main(ActivityThread.java:3948)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
java.lang.reflect.Method.invokeNative(ネイティブメソッド)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
java.lang.reflect.Method.invoke(Method.java:521)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
(ZygoteInit.java:782)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
12-19 12:33:05.460: エラー/AndroidRuntime(699): で
dalvik.system.NativeStart.main(ネイティブメソッド)
12-19 12:33:05.520: 情報/プロセス (563): 信号を送信しています。PID: 699 SIG: 3
12-19 12:33:05.520: INFO/dalvikvm(699): threadid=7: シグナルに反応しています
3
12-19 12:33:05.601: INFO/dalvikvm(699): スタック トレースを '/data/ に書き込みました
anr/traces.txt'
12-19 12:33:05.982: INFO/ARMAssembler(563): 生成されました
scanline__00000077:03515104_00000000_00000000 [ 27 ipp] (41 ins) で
[0x27c718:0x27c7bc] 982527 ns
12-19 12:33:06.011: 情報/ARMAssembler(563): 生成されました
scanline__00000077:03515104_00001001_00000000 [64 ipp] (84 ins) で
[0x27c7c0:0x27c910] in 1804978 ns

この問題を解決するにはどうすればよいですか? ありがとうございました

マクスード

4

1 に答える 1

0

MediaPlayer使用しているコンストラクターの Javadoc にnullは、プレーヤーの作成が失敗した場合に返されると書かれています。

メソッドを呼び出す前に作成が成功したかどうかを確認していないstartため、上記のスタック トレースに基づいて、表示されている例外の原因として最も可能性が高いのはそれです。

于 2009-12-30T02:32:42.313 に答える