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.日志文件为空:输出流没有关闭!
本文介绍如何在Android应用中自定义全局异常处理器以捕获未捕获的异常,并将异常信息写入外部存储的日志文件中。同时,文章还强调了在AndroidManifest.xml中正确配置Application类的重要性以及确保文件输出流被正确关闭。

5364

被折叠的 条评论
为什么被折叠?



