一:扉:
- Bugly使用文档官网
- SDK与NDK的区别
- NDK,armeabiCPU与指令集
3.1 基础的SDK是安卓开发必须的
3.2 而NDK提供了C++相关编译的库(配合JNI)
二:准备流程
1. 库文件的导入
- 亲测集成SDK官网就可以收到,但为了后续还是都加上好了
implementation 'com.tencent.bugly:crashreport:3.3.3'
implementation 'com.tencent.bugly:nativecrashreport:3.7.7'
- defaultConfig中加入NDK CPU指令集
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
2. 参数配置(权限一类)
- XML清单文件权限配置(不需要动态声明权限)
1.1 注:如果您的App需要上传到google play store,您需要将READ_PHONE_STATE权限屏蔽掉或者移除,否则可能会被下架。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<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" />
<uses-permission android:name="android.permission.READ_LOGS"
- 避免混淆Bugly,在Proguard混淆文件中增加以下配置:
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
- 注意Bugly使用的是http协议,安卓9.0开始不支持了,所以
3.1 配置xml单独限制门阀
1 清单文件中加入:
android:networkSecurityConfig="@xml/network_security_config"
2 xml文件中加入:network_security_config.xml文件
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">android.bugly.qq.com</domain>
</domain-config>
</network-security-config>
3.2 采用混合,明文网络流量
清单文件中加入:
android:usesCleartextTraffic="true"
3. 进行初始化
- 首先得将自己的产品在Bugly新建。获取APP ID并将以下代码复制到项目Application类onCreate()中,Bugly会为自动检测环境并完成配置(也可以通过 还支持通过“AndroidManifest.xml”来配置APP信息):
1.1 第三个参数为SDK调试模式开关,调试模式的行为特性如下:
1)输出详细的Bugly SDK的Log;
2)每一条Crash都会被立即上报;
3)自定义日志将会在Logcat中输出。
4)建议在测试阶段建议设置成true,发布时设置为false。
CrashReport.initCrashReport(getApplicationContext(), "注册时申请的APPID", false);
4.进行测试
- MainActivity中加入测试
CrashReport.testJavaCrash();
- 报错信息,但Bugly官网没有收集,将第三个参数改为true后官网会有收集。false情况如官网测试Demo中:
如:
throw RuntimeException()
3. 测试成功