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

相关文章

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

使用Python处理CSV和Excel文件的操作方法

《使用Python处理CSV和Excel文件的操作方法》在数据分析、自动化和日常开发中,CSV和Excel文件是非常常见的数据存储格式,ython提供了强大的工具来读取、编辑和保存这两种文件,满足从基... 目录1. CSV 文件概述和处理方法1.1 CSV 文件格式的基本介绍1.2 使用 python 内

python安装完成后可以进行的后续步骤和注意事项小结

《python安装完成后可以进行的后续步骤和注意事项小结》本文详细介绍了安装Python3后的后续步骤,包括验证安装、配置环境、安装包、创建和运行脚本,以及使用虚拟环境,还强调了注意事项,如系统更新、... 目录验证安装配置环境(可选)安装python包创建和运行Python脚本虚拟环境(可选)注意事项安装

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

SpringBoot使用注解集成Redis缓存的示例代码

《SpringBoot使用注解集成Redis缓存的示例代码》:本文主要介绍在SpringBoot中使用注解集成Redis缓存的步骤,包括添加依赖、创建相关配置类、需要缓存数据的类(Tes... 目录一、创建 Caching 配置类二、创建需要缓存数据的类三、测试方法Spring Boot 熟悉后,集成一个外