java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaRecorder.setAudioSource(int)' on a null object reference
Here is my log cat
11-02 15:04:19.184 30896-30896/com.example.tazeen.classnkk E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.tazeen.classnkk, PID: 30896
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaRecorder.setAudioSource(int)' on a null object reference
at com.example.tazeen.classnkk.ItemDetail_Record$1.onClick(ItemDetail_Record.java:171)
at android.view.View.performClick(View.java:4756)
at android.view.View$PerformClick.run(View.java:19748)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
Error at this line myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
here is my voice record button code
imageRecord = (ImageView) findViewById(R.id.image_Record);
imageRecord.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clickCount += 1;
Log.e("clickCount ", " click !!! " + clickCount);
if (clickCount == 1) {
if (vesselId == null) {
SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss");
newAudioFile = 0 + "_" + s.format(new Date()) + ".mp3";
Log.e(" newAudioFile ", " = " + newAudioFile);
outputFile = baseDir + "/classnkk_audio/" + newAudioFile;
Log.e("outputFile ", " = " + outputFile);
myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
myAudioRecorder.setOutputFile(outputFile);
imageRecord.setImageResource(R.drawable.record);
try {
myAudioRecorder.prepare();
myAudioRecorder.start();
myChronometer.start();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (vesselId != null) {
SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss");
newAudioFile = vesselId + "_" + s.format(new Date()) + ".mp3";
Log.e(" newAudioFile ", " = " + newAudioFile);
outputFile = baseDir + "/classnkk_audio/" + newAudioFile;
Log.e("outputFile ", " = " + outputFile);
myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
myAudioRecorder.setOutputFile(outputFile);
imageRecord.setImageResource(R.drawable.record);
try {
myAudioRecorder.prepare();
myAudioRecorder.start();
myChronometer.start();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} else if (clickCount == 2) {
imageRecord.setImageResource(R.drawable.record_pause);
myAudioRecorder.stop();
myAudioRecorder.reset();
myAudioRecorder.release();
myAudioRecorder = null;
myChronometer.stop();
long elapsedMillis = SystemClock.elapsedRealtime() - myChronometer.getBase();
Log.e("elapsedMillis ", " of myChronometer !!! " + elapsedMillis);
}
if (clickCount == 2) {
imageRecord.setImageResource(R.drawable.record);
clickCount = 0;
myAudioRecorder = null;
myChronometer.setBase(SystemClock.elapsedRealtime());
Log.e("(clickCount == 3 ) ", " click !!! " + clickCount);
}
}
});
Thanks in advance.