欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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的管理页面就会看到该异常。
5分钟快速集成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