关于如何获取上线后的app异常信息(bug)处理
2016-11-24 16:11
591 查看
首先是在Application中实现接口
我这个项目是如果异常了,就再次启动自己
public class App extends Application { //记得在清单文件注册App的name @Override public void onCreate() { super.onCreate(); Thread.setDefaultUncaughtExceptionHandler(new MYExceptionHandler()); } /** * 当app出现异常就会走下面的方法!!! * */ class MYExceptionHandler implements Thread.UncaughtExceptionHandler{ @Override public void uncaughtException(Thread thread, Throwable throwable) { if (throwable != null) { final Writer result = new StringWriter(); final PrintWriter printWriter = new PrintWriter(result); throwable.printStackTrace(printWriter); String errorReport = result.toString(); Log.d("-<<<<>" , errorReport); //这里吧errorReport post到http去就行了!!! //... //或者保存文件到sd卡中 saveInFile(errorReport ); //最后杀死自己 android.os.Process.killProcess(android.os.Process.myPid()); } } } private void saveInFile(String errorReport) { FileOutputStream out = null ; File file = new File(Environment.getExternalStorageDirectory() , "error-log.txt"); if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){ try { out = new FileOutputStream(file); out.write(errorReport.getBytes()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if (out != null) try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
我这个项目是如果异常了,就再次启动自己
//在这个方法里启动另一个activity public void uncaughtException(Thread thread, Throwable ex) { if (ex != null) { final Writer result = new StringWriter(); final PrintWriter printWriter = new PrintWriter(result); ex.printStackTrace(printWriter); String errorReport = result.toString(); Log.d("-<<<<>" , errorReport); //上传http Intent intent = new Intent("com.dopool.devinstall.TwoActivity"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(CATCH_EXCEPTION, errorReport); mContent.startActivity(intent); android.os.Process.killProcess(android.os.Process.myPid());
相关文章推荐
- 关于如何获取应用中的异常信息
- 获取手机型号、系统版本号、APP版本号信息(常用语全局异常处理中收集错误信息)
- spring利用扫描方式对bean的处理(对任何版本如何获取xml配置信息的处理)
- 关于如何处理异常
- INV 调试: 如何获取库存物料事务处理调试信息
- 关于bug分析与异常处理的一些思考
- Java基本功练习十八(异常处理【获取异常信息、链式异常和finally语句、自定制异常】)
- 当在Appdomain中发生未处理异常时如何不让程序结束掉
- 如何获取有关窗口正在处理的当前消息的信息
- 关于如何获取别的app包内图片资源
- INV 调试: 如何获取库存物料事务处理调试信息
- 关于wcf异常异常信息:由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribut
- 关于bug分析与异常处理的一些思考
- 关于 AppDomain 未知异常导致进程崩溃的处理办法
- 关于bug分析与异常处理的一些思考
- 【原】基础篇:第十二篇,Ext组件系列之--如何获取后台返回的自定义错误信息和系统异常信息
- 关于异常处理的注意事项一:throw exception(SQLiteDB 异常信息)
- Silverlight 3 中改进的对于获取WCF服务的异常信息处理
- 关于bug分析与异常处理的一些思考
- iOS 异常处理,将bug信息发送到开发者邮箱