如何使用Firebase(Crashlytics)记录非致命(捕获)异常

时间:2018-08-06 19:21:59

标签: android firebase crashlytics

我开始在项目中使用Firebase(Crashlytics)来跟踪应用程序崩溃。它非常适合崩溃,但如何记录非致命崩溃(即捕获的异常)。我尝试了Crashlytics.logException(e),但没有用。我在仪表板上看不到任何报告。我看到了建议使用FirebaseCrash.report(t)的答案,但是最新版本的Firebase中不存在此类。那么有人知道它是怎么做的吗?

依存关系 implementation 'com.google.firebase:firebase-core:16.0.0' implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'

enter image description here

4 个答案:

答案 0 :(得分:28)

对于新的Firebase Crashlytics,您应该使用recordException(@NonNull Throwable throwable)

...
catch (e: Exception) {
    FirebaseCrashlytics.getInstance().recordException(e)
}
...

这是firebase documentation所说明的

答案 1 :(得分:6)

您可以使用

Crashlytics.logException(exception);

记录非致命问题的崩溃信息

答案 2 :(得分:1)

确保在您附加到 ApplicationAndroidManifest.xml 类中添加以下代码 -

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        .
        .
        .
        FirebaseApp.initializeApp(this);
        FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
        .
        .
        .
    }
}

然后在预期的地方调用方法 -

FirebaseCrashlytics.getInstance().recordException(myException)

答案 3 :(得分:0)

模块build.gradle

 apply plugin: 'com.google.firebase.crashlytics'
 apply plugin: 'com.google.gms.google-services'
  android {...

 dependencies {
   implementation 'com.google.firebase:firebase-analytics-ktx:17.5.0'
   implementation 'com.google.firebase:firebase-crashlytics-ktx:17.2.1'

项目build.gradle

   dependencies {
    classpath "com.android.tools.build:gradle:4.0.1"
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72"
    classpath 'com.google.gms:google-services:4.3.3'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0'
}

MainActivity.kt

 class MainActivity : AppCompatActivity() {
    companion object {
         lateinit var mCrash: FirebaseCrashlytics           
         lateinit var instance: MainActivity
         private set
     }
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
         instance = this
        FirebaseApp.initializeApp(instance)
         mCrash = FirebaseCrashlytics.getInstance()
           val exception = Exception("test Exception")
           mCrash.recordException(exception)

enter image description here