简介
Firebase
支持捕获Android层和native层的异常信息
支持设置Non-fatals,统计重要性低一些的异常信息,用于分析
接入崩溃统计
模块的 build.gradle
plugins {
id 'com.google.firebase.crashlytics'
}
dependencies {
implementation platform('com.google.firebase:firebase-bom:31.1.1')
implementation 'com.google.firebase:firebase-crashlytics-ktx'
}
根目录的 build.gradle
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.13'
// Add the dependency for the Crashlytics Gradle plugin
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.4'
}
}
这样就搞定了,记得配置 google-services.json
文件
接入C层崩溃统计
在之前基础上 模块的 build.gradle
buildTypes {
release {
// Add this extension
firebaseCrashlytics {
// Enable processing and uploading of native symbols to Firebase servers.
// By default, this is disabled to improve build speeds.
// This flag must be enabled to see properly-symbolicated native
// stack traces in the Crashlytics dashboard.
nativeSymbolUploadEnabled true
strippedNativeLibsDir 'build/intermediates/stripped_native_libs/release/out/lib'
unstrippedNativeLibsDir 'build/intermediates/merged_native_libs/release/out/lib'
}
}
}
dependencies {
implementation 'com.google.firebase:firebase-crashlytics-ndk'
}
Non-fatals
登录失败,try catch 等异常的信息可以通过 Non-fatals 传上平台,用于分析
FirebaseCrashlytics.getInstance().recordException(e)
可以和项目 logUtils的工具类配置使用
fun w(e: Exception) {
Log.w(TAG, e)
//上报到FireBase
FirebaseCrashlytics.getInstance().recordException(e)
}
资料
官方文档捕获C异常
https://stackoverflow.com/questions/65961515/gradleexception-crashlytics-could-not-determine-stripped-unstripped-native-libr