在android里面往往有很多错误比如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属性