Firebase崩溃日志报告可以自动记录应用内崩溃信息,只需简单的几步,就可以将Firebase Crashlytics添加到安卓工程中,然后Firebase Crashlytics就会自动的收集应用内崩溃信息,包括错误类型,代码定位等等,非常的方便实用。
一、配置Android应用并下载google-service.json文件:
在Firebase控制台新建项目(需要使用Google账户登录),配置好Android应用后下载google-service.json文件,将google-service.json文件添加到项目的app目录下。
(1)添加项目时填写项目名称、项目id使用默认的就可以、选择国家、底部的两个勾选项要么都选,要么都不选,表示是否和Google分享你的app分析数据,最后点击创建项目即可。
(2)Firebase的项目不止是为Android打造的,可以在项目中添加Android应用,IOS应用,网页应用。那么我们先要为这个项目添加一个Android应用:
选择“将Firebase添加到您的安卓应用”,然后填写app包名,app别名可以选填,调试签名证书SHA1,调试签名证书SHA1可以通过命令行获取:
Mac环境:
keytool -exportcert -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore
Windows环境:
keytool -exportcert -list -v \ -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
输入命令行后需要输入密钥库口令,默认的密钥库口令是android
获取正式签名证书SHA1的命令行:
keytool -exportcert -list -v \ -alias <your-key-name> -keystore <path-to-production-keystore>
在<your-key-name>填入密钥名,<path-to-production-keystore>填入密钥路径,然后输入密钥库口令即可获取SHA1。
4.添加好Android应用后,下载google-service.json文件,添加到项目的app目录下。
二、集成Crashlytics,然后Firebase自动打印程序错误信息
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.0.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.1' implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3' } apply plugin: 'com.google.gms.google-services'
将 SDK 添加到您的应用后,Crashlytics 就会立即自动开始监听并收集崩溃报告。在Firebase控制台的Crashlytics中可以查看:
当然,也可以手动的打印日志到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,然后Firebase自动打印程序错误信息 的功能。