不知大家是否经常遇到这种情况:自己的项目有时会在没有连接到电脑时发生崩溃,好不容易发现的bug结果连接到电脑时又复现不出来了;又或者自己写的一个功能在开机启动时产生小bug导致崩溃,而刚启动的机器想让他打出log又不是那么容易。
此时我们有必要将程序的崩溃信息写入本地的文件,方便我们做bug的修复。
本项目为开源共同讨论的,奉上项目源码(有javadoc),以及打包好的jar包还有jar包的使用手册。
如果看官自行阅读源码,代码均有注释,应该简明易懂。
如果看官想直接使用,请看下文的使用手册。
推荐直接使用jar包的方式引用至项目中,这样不用每个项目都粘贴一下源码了。
*************************割*****************************
1.下载CrashHelper.rar,解压缩得到CrashHelper.jar文件,将文件拷贝到项目的libs文件夹下。并且右键点击CrashHelper.jar-->Build path-->Add To Build Path.如下图所示
<ignore_js_op><ignore_js_op>
(注:由于编辑器不一样可能看见的视图效果会不一样,笔者此时用的是ADT v21.0.1 由google的adt-bundle-windows.rar中的eclipse直接集成)
新版的ADT可以直接将libs下的jar包或者库直接列入Android Dependencies中,则无需手动添加至Build Path了,更智能化了!
2.在自己项目中的自定义Application中的onCreate中使用以下2个方法:
public class MyApplication extends Application {
/**
* (non-Javadoc)
* @see android.app.Application#onCreate()
*/
@ Override
public void onCreate() {
super.onCreate() ;
CrashHandler crashHandler = CrashHandler.getInstance() ;
crashHandler.init(this) ;
}
}
3.在Manifest.xml中将自定义的Application声明为程序主Application,并且别忘了配上写SD卡的权限
<ignore_js_op>
以上3个步骤后即可使用此jar包,自己的项目可以放在手机里随身带着,跑一天下来看看SD卡根目录下的/CrashInfos/文件夹下收集到的错误信息
<ignore_js_op><ignore_js_op>
以下是附件
<ignore_js_op> CrashHelper.zip
************************************************************
细心的朋友可能发现了,此功能一旦加入了项目中去后,所有的崩溃的错误信息都保存到sd卡里了,对我们的连调反而极大降低了效率,所以笔者再次更新jar包,这样在保存文件的同时也将错误日志输出到了控制台,双管输出。如下图,注意看一下时间就知道了是同一个异常输出到了2个地方。
<ignore_js_op><ignore_js_op>
现在将新的jar包和源码奉上
<ignore_js_op> NewCrashHelper.zip