1. 定义类继承Application
2. 重写setUncaughtException方法,自定义类继承UncaughtExceptionHandler类
3. 代码如下
public class FragmentApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Thread.currentThread().setUncaughtExceptionHandler(new MyExceptionHandler());
}
private class MyExceptionHandler implements UncaughtExceptionHandler {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
try {
File file = new File(Environment.getExternalStorageDirectory(), "error.log");
PrintWriter err = new PrintWriter(file);
ex.printStackTrace(err);
err.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
android.os.Process.killProcess(android.os.Process.myPid());
}
}
}
4. 日志文件没有生成:别忘了在manifest中application标签内添加android:name属性
5.日志文件为空:输出流没有关闭!