5分钟快速集成bugly并测试异常上报
程序员文章站
2022-03-11 08:37:16
前言上文说到,由于无法捕获用户app使用中的异常,所以今天来搞一波buglyPS:本文只讲异常上报的接入和用法,不包含app下载和热更新等模块。先去https://bugly.qq.com/v2/workbench/apps新建产品很简单,两步即可搞定,点击新建产品 按指引走即可,这里不多BB,直接接入Android项目。app依赖(主 Module 的 build.gradle 中)compile 'com.tencent.bugly:crashreport:3.2.33'//sdkcomp...
前言
上文说到,由于无法捕获用户app使用中的异常,所以今天来搞一波bugly
PS:本文只讲异常上报的接入和用法,不包含app下载和热更新等模块。
先去https://bugly.qq.com/v2/workbench/apps新建产品
很简单,两步即可搞定,点击新建产品 按指引走即可,这里不多BB,直接接入Android项目。
app依赖(主 Module 的 build.gradle 中)
compile 'com.tencent.bugly:crashreport:3.2.33'//sdk
compile 'com.tencent.bugly:nativecrashreport:3.7.3'//ndk
Application中初始化
//参数配置
CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(this);
//设置上报渠道
strategy.setAppChannel();
//设置App版本,可以用 versionCode 或者 versionName,或者随便起。这里推荐使用versionName。
strategy.setAppVersion(versionName);
//设置包名
strategy.setAppPackageName(packageName);
//获取进程名
String processName = getProcessName(android.os.Process.myPid());
//设置只在主进程上报
strategy.setUploadProcess(processName == null || processName.equals(packageName));
//正式初始化 APPID是新建Bugyly应用时,每个应用有对应一个APPID。
CrashReport.initCrashReport(this, "APPID", false, strategy);
配置UserId,推荐在app启动成功,能拿到本地存储的用户信息后调用。
CrashReport.setUserId(UserId);
测试方法
//调用该方法,可主动让App奔溃,建议放在某个按钮后执行。
CrashReport.testJavaCrash();
然后部署测试,不出意外的话,点击上面说的按钮,你在Bugly的管理页面就会看到该异常。
获取进程名的方法
private static String getProcessName(int pid) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader("/proc/" + pid + "/cmdline"));
String processName = reader.readLine();
if (!TextUtils.isEmpty(processName)) {
processName = processName.trim();
}
return processName;
} catch (Throwable throwable) {
throwable.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException exception) {
exception.printStackTrace();
}
}
return null;
}
Bugly文档地址:https://bugly.qq.com/docs/user-guide/instruction-manual-android/
本文地址:https://blog.csdn.net/qq_38376757/article/details/107184343
上一篇: 正则匹配后面非指定字符的正则 原创