2017-02-26 23 views
0

MediaPlayerプラグインを自分のコードに使用してエミュレータまたはAndroidデバイスにデプロイすると、ビルドはエラーなく終了しますが、デバイスの起動時にアプリがクラッシュします。MediaPlayerプラグインによりアプリがクラッシュする

ジャワ:MainActivity.java

package com.oniichan.launchpadify; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.media.MediaPlayer; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    final MediaPlayer mp = MediaPlayer.create(this, R.raw.clap1); 

    public void clapone(View v){ 
     Toast.makeText(this, "Playing clap1.wav", Toast.LENGTH_SHORT).show(); 
     mp.start(); 
    } 
} 

XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.oniichan.launchpadify.MainActivity"> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true"> 

     <Button 
      android:layout_width="150px" 
      android:layout_height="150px" 
      android:layout_margin="10dp" 
      android:id="@+id/play1" 
      android:onClick="clapone" 
      /> 

    </FrameLayout> 
</RelativeLayout> 

activity_main.xml問題のラインは

final MediaPlayer mp = MediaPlayer.create(this, R.raw.clap1); 
であります

私がプログラムの上記の行をコメントアウトすると、すべて正常に動作しているようです。何かが起こるのを待って上記の行のコメントを外してしまったときだけ、アプリがクラッシュします。 pastebin.com/NGrqTmAf

+0

あなたが思っている場合は、[はい左上隅にある四角はどのボタンで私は音を再生するために使用しています – Shanu

+0

Logcat(クラッシュレポート)にはAndroid Monitorが必要ですそれは何と言いますか? – 0X0nosugar

答えて

0

このライン

最終MediaPlayerの:ここで私はここにペーストビン ルックアップでクラッシュログを入れてきれいに物事を保つためにアプリ

Application Layout in Android Studio

Application Crash on Emulator

のスクリーンショットですmp = MediaPlayer.create(this、R.raw.clap1);

は、アクティビティが完全にインスタンス化される前に実行されるため、thisはまだ存在しません。

あなたはメンバ変数としてMediaPlayerを持つようにしたい場合は、finalを除外し、このようにそれを実行します。

public class MainActivity extends AppCompatActivity { 

    private MediaPlayer mp; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mp = MediaPlayer.create(this, R.raw.clap1); 
    } 

    // other code here... 
} 
+0

それはかなりうまくいきました。あなたはロック! – Shanu

関連する問題