tencent bugly接入

bugly地址:http://bugly.qq.com/

添加依赖

  在build.gradle中添加依赖

1
2
3
4
dependencies {
//其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如4.0.3
implementation 'com.tencent.bugly:crashreport:latest.release'
}

参数配置

  在AndroidManifest.xml中添加权限

1
2
3
<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" />

  如果开启了混淆,需要在混淆文件中添加如下配置

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

初始化bugly

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

  • 输出详细的Bugly SDK的Log;
  • 每一条Crash都会被立即上报;
  • 自定义日志将会在Logcat中输出。
1
CrashReport.initCrashReport(getApplicationContext(), "注册时申请的APPID", false);

  Bugly2.0及以上版本支持通过“AndroidManifest.xml”配置APP信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<application
<!-- 配置APP ID -->
<meta-data
android:name="BUGLY_APPID"
android:value="<APP_ID>" />
<!-- 配置APP版本号 -->
<meta-data
android:name="BUGLY_APP_VERSION"
android:value="<APP_Version>" />
<!-- 配置APP渠道号 -->
<meta-data
android:name="BUGLY_APP_CHANNEL"
android:value="<APP_Channel>" />
<!-- 配置Bugly调试模式(true或者false)-->
<meta-data
android:name="BUGLY_ENABLE_DEBUG"
android:value="<isDebug>" />
</application>

  通过“AndroidManifest.xml”配置后的初始化方法如下:

1
CrashReport.initCrashReport(getApplicationContext());

dex分包配置

  如果使用了MultiDex,建议通过Gradle的multiDexKeepFile配置等方式把Bugly的类放到主Dex,另外建议在Application类的attachBaseContext方法中主动加载非主dex

  multidex-keep.txt中配置

1
com.tencent.bugly.crashreport.CrashReport

  gradle中配置

1
2
3
4
5
6
defaultConfig {
...
multiDexEnabled true //dex分包
multiDexKeepFile file('multidex-keep.txt') // 指定某些类存放于主dex
...
}

测试

  执行如下代码,可以进行崩溃测试

1
CrashReport.testJavaCrash();