2017-07-22 3 views
0

私の再生ボタンをクリックするたびにMedia Playerがクラッシュする原因がわかりません。コードは以下の通りです(愚かな変数名を許してください)。Androidスタジオメディアプレーヤーがクラッシュするアプリケーション

package com.example.daud.myapplication; 

import android.media.MediaPlayer; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

public class player_try_2 extends AppCompatActivity { 
    MediaPlayer playerOfSong; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_player_try_2); 
    } 


    public void playTheSong(){ 
      playerOfSong = MediaPlayer.create(this, R.raw.test1); 
      playerOfSong.start(); 

    } 
} 

playTheSong()方法は、私のボタンのonClickのに設定されています。これをコーディングするのではなく、デザインビューのボタンのプロパティを使って行っています。 R.raw.test1ファイルはmp3ファイルを保持します。

これに関するお手伝いは大変ありがとうございます。ありがとう。

LogCatはこれをエラーとして表示されます。

07-22 00:22:52.790 11650-11650/com.example.daud.myapplication E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.example.daud.myapplication, PID: 11650 
    java.lang.IllegalStateException: Could not find method playTheSong(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'button' 
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327) 
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) 
     at android.view.View.performClick(View.java:6219) 
     at android.view.View$PerformClick.run(View.java:24482) 
     at android.os.Handler.handleCallback(Handler.java:769) 
     at android.os.Handler.dispatchMessage(Handler.java:98) 
     at android.os.Looper.loop(Looper.java:164) 
     at android.app.ActivityThread.main(ActivityThread.java:6540) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
+0

コール 'playerOfSong.prepare()ですかViewパラメータを渡す必要があります;'の前に 'start'を –

+0

それを試してみてください。同じ結果。 – doddy

答えて

0

あなたは

この

public void playTheSong(View v){ 
     playerOfSong = MediaPlayer.create(this, R.raw.test1); 
     playerOfSong.start(); 

} 
+0

私は/ amだったし、それを修正しました。どうもありがとうございます。 stackoverflowの私の評判は投票できるようには十分ではありませんが、ありがとうございます! – doddy

関連する問題