Android 集成Bugly完成线上的异常Exception收集及处理

2024-05-15 01:28

本文主要是介绍Android 集成Bugly完成线上的异常Exception收集及处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • (一)添加产品APP
    • (二)集成SDK
    • (三)参数配置
      • 权限
      • 混淆
    • (四)初始化

(一)添加产品APP

一)在个人头像 -> 我的头像 -> 新建产品
在这里插入图片描述
二)复制APPID
新建完产品以后,查看产品设置,如下图,App ID要复制好
在这里插入图片描述

(二)集成SDK

在Module的build.gradle文件中添加依赖和属性配置:

android {defaultConfig {ndk {// 设置支持的SO库架构abiFilters "armeabi", "x86_64" // 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'}}
}dependencies {implementation 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如4.0.3
}

注意:
4.0.0之前版本,还需要添加nativecrashreport依赖:

 implementation 'com.tencent.rqd:nativecrashreport:latest.release' //其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.9.2

如果在添加“abiFilter”之后Android Studio出现以下提示:

NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.

则在项目根目录的gradle.properties文件中添加:

android.useDeprecatedNdk=true

(三)参数配置

权限

在AndroidManifest.xml中添加权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

混淆

请避免混淆Bugly,在Proguard混淆文件中增加以下配置:

-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}

(四)初始化

        CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(getApplicationContext());// 通过UserStrategy设置strategy.setDeviceModel("userdefinedModel");// 也可以通过CrashReport类设置,适合无法在初始化sdk时获取到deviceModel的场景,context和deviceModel不能为空(或空字符串)CrashReport.setDeviceModel(context, "HONOR");strategy.setAppChannel("myChannel");  //设置渠道strategy.setAppVersion("1.0");      //App的版本strategy.setAppPackageName("com.example.myapplicationcalculator");  //App的包名// 也可以通过CrashReport类设置,适合在初始化sdk时无法获取到对应数据的场景,context、appChannel/appVersion/appPackage不能为空(或空字符串)
//        CrashReport.setAppChannel(, String appChannel);
//        CrashReport.setAppVersion(context, String appVersion);
//        CrashReport.setAppPackage(context, String appPackage);// 设置anr时是否获取系统trace文件,默认为false
//        strategy.setEnableCatchAnrTrace(true);
//
//        // 设置是否获取anr过程中的主线程堆栈,默认为true
//        strategy.setEnableRecordAnrMainStack(true);CrashReport.initCrashReport(context,  "注册时申请的APPID", true, strategy);

注意:
为了保证运营数据的准确性,建议不要在异步线程初始化Bugly。

获取APP ID并调用初始化方法,Bugly会为自动检测环境并完成配置:

CrashReport.initCrashReport(context,  "77c05226df", true, strategy);

CrashReport,initCrashReport第三个参数为SDK调试模式开关,调试模式的行为特性如下:

  • 输出详细的Bugly SDK的Log;
  • 每一条Crash都会被立即上报;
  • 自定义日志将会在Logcat中输出。

建议在测试阶段建议设置成true,发布时设置为false。

然后自己设置一个异常进行测试,比如NPE Exception,然后在平台上进行查看监控:
在这里插入图片描述

这篇关于Android 集成Bugly完成线上的异常Exception收集及处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/990414

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda