2017-06-08 24 views
-3

私は今2つのプレイストアでのアプリの私のアプリを持っているアンドロイド開発中の新しい開発者7私はこのメッセージを取得アンドロイド& 6アンドロイドで動作していないよ私は私のAndroidアプリでエラーが発生している

のRuntimeException そして、NullPointerExceptionが

私は問題を抱えているこの私のメインアクティビティコード:

public class Recored extends Activity {  

Button rec,stop; 
private MediaRecorder myRecords; 
private String outputFile = null; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.recored); 

    stop = (Button)findViewById(R.id.bStop); 
    rec = (Button)findViewById(R.id.bRecord); 

    stop.setEnabled(false); 
    myRecords = new MediaRecorder(); 
    myRecords.setAudioSource(MediaRecorder.AudioSource.MIC); 
    myRecords.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
    myRecords.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
    Date createdDate = new Date(); 
    File myDir = new File(Environment.getExternalStorageDirectory()+"/Recordings"); 
    if (!myDir.exists()){ 
     if (myDir.mkdir()); 
    } 
     outputFile = myDir.getAbsolutePath() + "/" + createdDate + ".mp3"; 
     myRecords.setOutputFile(outputFile); 

     rec.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       try { 
        myRecords.prepare(); 
        myRecords.start(); 


       } 

       catch (IllegalStateException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       catch (IOException e) { 
        e.printStackTrace(); 
       } 
       rec.setEnabled(false); 
       stop.setEnabled(true); 
       Toast.makeText(getApplicationContext(),"Recording started",Toast.LENGTH_LONG).show(); 
      } 
     }); 
     stop.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       myRecords.stop(); 
       myRecords.release(); 
       myRecords = null; 
       stop.setEnabled(false); 
       rec.setEnabled(true); 
      } 
     }); 


} 

}

+0

のリンクの下に参照することができますか? – gaurang

+0

デベロッパーコンソールに表示されるエラーログを追加してください。 IDE上で問題をシミュレートすることができれば、それを投稿してください... – Opiatefuchs

+1

エラーとスタックトレースを表示します。それを読んで、ここに追加する前に自分で理解しようとしてください。 –

答えて

0

実行時許可を求めましたか?

private static final int REQUEST_RECORD_AUDIO_PERMISSION = 200; 

    private String[] permissions = {Manifest.permission.RECORD_AUDIO}; 

//このメソッド

@Override 
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
     super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
     switch (requestCode) { 
      case REQUEST_RECORD_AUDIO_PERMISSION: 
       permissionToRecordAccepted = grantResults[0] == PackageManager.PERMISSION_GRANTED; 
       break; 
     } 
     if (!permissionToRecordAccepted) finish(); 

    } 
+0

私はこのコードをお試しいただきありがとうございます – hazem

0

はアンドロイド6 &上位バージョンのランタイム許可を処理する必要が

ActivityCompat.requestPermissions(this, permissions, REQUEST_RECORD_AUDIO_PERMISSION); 

オーバーライドをOnCreateのためにこのコードを追加します。あなたは許可を求めて、許可が拒否されたか受け入れられたかに従ってコードを管理しなければなりません。

あなたは、実行時のアクセス許可をユーザーに求めているランタイム許可 https://developer.android.com/training/permissions/requesting.html