Android开发完成后异常捕获
原创
©著作权归作者所有:来自51CTO博客作者达帮主的原创作品,请联系作者获取转载授权,否则将追究法律责任
在android里面往往有很多错误比如Android里面的异常报错 这些异常是不允许给客户看的应为客户看不懂
只需要自己捕获就好: 看图
比如:这种报错 没有任何意义 只需要自己开的懂 该操作只需要直接闪退就可以了
代码如下:
public class MyAppLication extends Application {
//开天地方法,老母子方法
@Override
public void onCreate() {
Thread.currentThread().setUncaughtExceptionHandler(new MyExceptionHander());
super.onCreate();
}
private class MyExceptionHander implements Thread.UncaughtExceptionHandler {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
/// Logger.i("MobileSafeApplication", "发生了异常,但是被哥捕获了..");
//并不能把异常消灭掉,只是在应用程序关掉前,来一个留遗嘱的事件
try {
Field[] fields = Build.class.getDeclaredFields();
StringBuffer sb = new StringBuffer();
for(Field field:fields){
String value = field.get(null).toString();
String name = field.getName();
sb.append(name);
sb.append(":");
sb.append(value);
sb.append("\n");
}
FileOutputStream out = new FileOutputStream("/mnt/sdcard/error.log");
StringWriter wr = new StringWriter();
PrintWriter err = new PrintWriter(wr);
ex.printStackTrace(err);
String errorlog = wr.toString();
sb.append(errorlog);
out.write(sb.toString().getBytes());
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
//?专注自杀,早死早超生
android.os.Process.killProcess(android.os.Process.myPid());
}
}
}
该代码就是在Application的子类实现闪退功能 需要在 AndroidManifest.xml 里面Application里面配置 里面的name属性