安卓crash捕捉异常应用

安卓crash捕捉异常应用
一、捕捉异常后存入到手机本地

首先,导入crash类库(此类库可从本人资源分享中下载)



第二步,在继承application的类中初始化类库中的CrashHandler,如图中两行代码



并且在manifest文件中加入scard写入权限
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


第三步,尝试制造异常并捕捉查看







第四步,在手机中查找crash文件,即捕捉后异常错误







第五步、研究该捕捉异常的代码核心解释,如下:
public class CrashHandler implements UncaughtExceptionHandler {
private Thread.UncaughtExceptionHandler mDefaultHandler;
private static CrashHandler INSTANCE = new CrashHandler();

public static CrashHandler getInstance() {
return INSTANCE;
}

public void init(Context context) {
mContext = context;
mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(this);
}

@Override
public void uncaughtException(Thread thread, Throwable ex) {

handleException(ex);
ex.printStackTrace();
// 退出程序
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
// }
}

}
实现接口UncaughtExceptionHandler ,必须重写方法uncaughtException,当捕捉到异常时回调方法uncaughtException,故此,在方法uncaughtException中写处理异常的方法,即写入本地的方法,异常为捕获到并传过来的ex。
init方法中两个及其重要的方法,其意思是,当捕捉到异常线程的handler时,为Thread设置一个系统默认的handler,已完成后面对捕获的handler处理的任务,具体可详见:http://www.cnblogs.com/freeliver54/archive/2011/10/17/2215423.html

二、捕捉异常后发送到邮箱

第一步,同上。

第二步,在继承application的类中初始化类库中的ErrorReportModel,

public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
SetMailbox();
// SaveLocal();
}


/**
* 保存crash至手机本地
*/
public void SaveLocal() {
CrashHandler crashHandler = CrashHandler.getInstance();
crashHandler.init(getApplicationContext());
}


/**

* 将crash发送到制定邮箱
*/
public void SetMailbox() {
ErrorReportModel errorReportModel = ErrorReportModel
.getErrorReportModel(this);
}


}

并且修改类库中的邮箱帐号(一般为你的QQ邮箱),如图:




打开类sendemailutil类,找到修改邮箱数组toEmails



第三步,制造崩溃。




第四步,邮箱收到崩溃邮件。






三、利用第三方数据统计收集崩溃信息(例如友盟统计分析)

http://www.umeng.com/analytics

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值