我需要一个计时器用于我的程序。在我的Android应用程序中我使用计时器计划。但是如下所示得到Timer-0致命异常。我做错了什么?
logcat的:
08-20 20:18:29.246: E/AndroidRuntime(25999): FATAL EXCEPTION: Timer-0
08-20 20:18:29.246: E/AndroidRuntime(25999): Process: com.example.ancam, PID: 25999
08-20 20:18:29.246: E/AndroidRuntime(25999): java.lang.NullPointerException
08-20 20:18:29.246: E/AndroidRuntime(25999): at com.example.ancam.MainActivity$1.run(MainActivity.java:191)
08-20 20:18:29.246: E/AndroidRuntime(25999): at java.util.Timer$TimerImpl.run(Timer.java:284)
Java代码:
mTimer.schedule( new TimerTask(){
@Override
public void run() {
try{
mediarecorder.prepare();
mediarecorder.start();
}catch(IllegalStateException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try{
Thread.sleep(10000);
}catch(InterruptedException e){
e.printStackTrace();
}
mediarecorder.stop();
new Thread(new Runnable() {
public void run() {
uploadFile(mm);
}
}).start();
mediarecorder.reset();
}
}, 0, 500);
答案 0 :(得分:1)
您在第191行获得空指针异常。这意味着该行上的对象为null,您尝试调用其方法。
第191行有mediarecorder.stop();和mediarecorder为空,这就是你得到这个例外的原因。
确保在使用之前初始化mediarecorder对象。
请参阅以下链接,以便正确初始化mediarecorder。
http://developer.android.com/reference/android/media/MediaRecorder.html