參考官方文檔:https://bugly.qq.com/docs/user-guide/instruction-manual-android/?v=20200622202242
庫檔案導入
Bugly支援自動內建和手動內建兩種方式,如果您使用Gradle編譯Apk,我們強烈推薦您使用自動接入方式配置庫檔案。
自動內建(推薦)(官方不推薦手動接入,如要請自行檢視)
Bugly支援JCenter倉庫和Maven Central倉庫。為了實作更加靈活的配置,Bugly SDK(2.1.5及以上版本)和NDK(SO庫)目前已經分開成兩個獨立的倉庫:
- SDK:com.tencent.bugly:crashreport
- NDK:com.tencent.bugly:nativecrashreport
其中,內建Bugly NDK時,需要同時內建Bugly SDK。
同時內建SDK和NDK(如隻想接入SDK,可檢視官方)
在Module的build.gradle檔案中添加依賴和屬性配置:
android {
defaultConfig {
ndk {
// 設定支援的SO庫架構
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
}
}
dependencies {
implementation 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.1.9
implementation 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.0
}
同時內建Bugly SDK和NDK的配置如下圖所示,後續更新Bugly SDK和NDK時,隻需變更配置腳本中的版本号即可。
參數配置
- 在AndroidManifest.xml中添權重限:
<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" />
注:如果您的App需要上傳到,您需要将
google play store
權限屏蔽掉或者移除,否則可能會被下架。
READ_PHONE_STATE
- 請避免混淆Bugly,在Proguard混淆檔案中增加以下配置:
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
以上就是三步環境配置完成,下面是使用階段
最簡單的初始化
擷取APP ID并将以下代碼複制到項目Application類onCreate()中,Bugly會為自動檢測環境并完成配置:
CrashReport.initCrashReport(getApplicationContext(), "注冊時申請的APPID", false);
為了保證營運資料的準确性,建議不要在異步線程初始化Bugly。
第三個參數為SDK調試模式開關,調試模式的行為特性如下:建議在測試階段建議設定成true,釋出時設定為false。
- 輸出詳細的Bugly SDK的Log;
- 每一條Crash都會被立即上報;
- 自定義日志将會在Logcat中輸出。
此外,Bugly2.0及以上版本還支援通過“AndroidManifest.xml”來配置APP資訊。如果同時又通過代碼中配置了APP資訊,則最終以代碼配置的資訊為準。
在“AndroidManifest.xml”的“Application”中增加“meta-data”配置項:
<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>
不同于“android:versionName”,“BUGLY_APP_VERSION”配置的是Bugly平台的APP版本号。
通過“AndroidManifest.xml”配置後的初始化方法如下:
CrashReport.initCrashReport(getApplicationContext());
Bugly預設從“AndroidManifest.xml”檔案中讀取“VersionName”作為版本号,自定義設定請使用參考“進階設定”。