Firebase崩溃日志报告可以自动记录应用内崩溃信息,只需简单的几步,就可以将Firebase Crashlytics添加到安卓工程中,然后Firebase Crashlytics就会自动的收集应用内崩溃信息,包括错误类型,代码定位等等,非常的方便实用。
配置步骤见本系列第一篇文章:Android Firebase接入(序)–Firebase简介以及Firebase官方Demo的使用中的 “配置Android应用并下载google-service.json文件”
项目级 build.gradle(<项目>/build.gradle):添加classpath和maven
buildscript {
repositories {
...
maven { url 'https://maven.google.com' }
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
classpath 'com.google.gms:google-services:4.1.0'
classpath 'io.fabric.tools:gradle:1.25.1'
}
}
allprojects {
repositories {
...
maven { url 'https://maven.google.com' }
}
}
...
应用级 build.gradle(<项目>/<应用模块>/build.gradle),添加implementation和apply plugin
...
apply plugin: 'io.fabric'
android{
...
}
dependencies {
...
implementation 'com.google.firebase:firebase-core:16.0.3'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.5'
}
apply plugin: 'com.google.gms.google-services'
将 SDK 添加到您的应用后,在Firebase控制台的Crashlytics中进行配置,Crashlytics 就会立即自动开始监听并收集崩溃报告。
Crashlytics配置步骤:
在Firebase控制台的Crashlytics模块:
点击设置Crashlytics,到达以下界面:
选择“是,此应用是第一次安装 Crashlytics”,到达以下界面:
点击“转至Crashlytics文档”,此时会打开一个新标签页,即Crashlytics文档,把新标签页直接关掉即可,这里就会到第三步:
第三步是“构建并运行您的应用,我们将侦听您的应用与我们的服务器通信的请求。”,也就是让我们运行刚才已添加上Crashlytics的项目,Firebase会自动监听我们的app,如果我们的app已经安装上Crashlytics,这里就会跳转到Crashlytics崩溃报告页面。
经过博主亲测,最好在代码里加上手动调用崩溃日志,帮助Firebase更好的监听到我们的app,否则在这一步可能会等很久。在MainActivity中添加:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Crashlytics.log(Log.DEBUG, TAG, "Crash");
}
}
然后在电脑上连上手机,运行app,Firebase就会自动监听我们的app是否安装了Crashlytics,监听到之后会看到以下页面:
点击转至Crashlytics信息中心,就会看到崩溃分析页面了:
点击崩溃信息可以看到崩溃详情:
Crashlytics.log(Log.VERBOSE, TAG, "Crash");
Crashlytics.log(Log.DEBUG, TAG, "Crash");
Crashlytics.log(Log.INFO, TAG, "Crash");
Crashlytics.log(Log.WARN, TAG, "Crash");
Crashlytics.log(Log.INFO, TAG, "Crash");
Crashlytics.log(Log.ASSERT, TAG, "Crash");
Crashlytics.logException(new Throwable());
调用Crashlytics.log(int priority, String tag, String msg)方法即可,第一个参数是日志级别,和Android Studio的Log日志级别是一样的,第二个参数是Tag标签,第三个参数是打印的内容。Crashlytics还提供了一个打印错误日志的方法logException(Throwable throwable),传入一个错误信息即可。
手动打印日志很少用到,一般集成了Crashlytics之后,让Crashlytics自动打印程序错误信息即可。