
回复
Firebase Crashlytics:
Firebase Crashlytics 是一个轻量级的实时崩溃报告解决方案,可帮助您对影响应用质量的稳定性问题进行跟踪、确定优先解决顺序并加以修复。Crashlytics 会对崩溃进行智能分组并突出显示导致这些崩溃的环境因素,从而为您节省问题排查的时间。您可以查明某个特定的崩溃是否影响到了很多用户;当某个问题突然变得严重时收到提醒;找出哪些代码行导致了崩溃。简单来说就是和国内bugly的功能类似。
使用起来是相当简单的。以下步骤是根据官方配置文档:
将 Crashlytics SDK 添加到您的项目
将 SDK 添加到编译文件中
1. 在项目级 build.gradle 中,将 google-services 版本更新为 3.1.2 或更高版本,并添加 Crashlytics 代码库和依赖项:
buildscript {
repositories {
// ...
// Add repository
maven {
url 'https://maven.fabric.io/public'
}
}
dependencies {
// ...
// Check for v3.1.2 or higher
classpath 'com.google.gms:google-services:4.1.0'
// Add dependency
classpath 'io.fabric.tools:gradle:1.25.4'
}
}
allprojects {
// ...
repositories {
// ...
// Add repository
maven {
url 'https://maven.google.com/'
}
}
}
2、在应用级 build.gradle 中,将 firebase-core 更新为 v11.4.2 或更高版本,并添加 Crashlytics 依赖项:
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
dependencies {
// ...
// Check for v11.4.2 or higher
implementation 'com.google.firebase:firebase-core:16.0.4'
// Add dependency
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.5'
}
将 SDK 添加到您的应用后,Crashlytics 就会立即自动开始侦听并收集崩溃报告。
到目前为止,Crashlytics就可以进行崩溃日志搜集了。甚至都不用在代码里面进行初始化。如下图:
当然,你也可以自定义崩溃报告搜集,例如,你想在try .catch的地方进行日志搜集。你可以使用Crashlytics.log
以下是简单封装:
public class CrashReportingManager {
public static void enable(Context context, boolean enable){
if(!enable){
return;
}
final Fabric fabric = new Fabric.Builder(context)
.kits(new Crashlytics())
.debuggable(BuildConfig.DEBUG) // Enables Crashlytics debugger
.build();
Fabric.with(fabric);
}
public static void logException(Exception e) {
logException(e, false);
}
public static void logException(Exception e, boolean log) {
if(BuildConfig.DEBUG){
e.printStackTrace();
} else if(log) {
Crashlytics.logException(e);
}
}
public static void log(String s) {
Crashlytics.log(s);
}
public static void log(String tag, String s) {
Crashlytics.log(tag+":"+s);
}
初始化的时候调用:
CrashReportingManager.enable(getApplicationContext(), true);
在需要上报处调用:
try {
} catch (Exception e) {
CrashReportingManager.logException(e);
}
好了,就是这么简单~~