转到控制台

从 Firebase 崩溃报告升级为 Firebase Crashlytics

Crashlytics 是 Firebase 新的主要崩溃报告解决方案。如果您的应用使用了 Firebase 崩溃报告,那么告诉您一个好消息:Crashlytics 提供了增强的崩溃报告功能,其设置流程与您所熟悉的流程几乎相同,因此升级非常简单:

  1. 更新您的项目的依赖项。
  2. 迁移所有日志调用(如果有)。
  3. 设置手动初始化(如果您用到了这项功能)。

更新项目依赖项

  1. 将 Crashlytics 代码库和依赖项添加到您的项目级 build.gradle 文件中:
    buildscript {
        repositories {
            // ...
            maven {
               url 'https://maven.fabric.io/public'
            }
        }
        dependencies {
            // ...
            classpath 'io.fabric.tools:gradle:1.31.0'
        }
    }
    
    allprojects { // ... repositories { // ... maven { url 'https://maven.google.com/' } } }
  2. 注意:Crashlytics 要求使用 3.1.2 或更高版本的 Google 服务插件。 请检查项目的 build.gradle 依赖项中的 com.google.gms:google-services 版本号。
  3. 要更新您应用的 Firebase Crashlytics 依赖项,请对您的应用级 build.gradle 进行以下更改:
    apply plugin: 'com.android.application'
    /* Add the Fabric plugin: */
    apply plugin: 'io.fabric'
    
    dependencies {
        // ...
    
        /* Delete Crash Reporting:
        implementation 'com.google.firebase:firebase-crash:16.2.1'
    
        Add Crashlytics: */
        implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
    
        // Update your firebase-core version, if it's lower than v11.4.2
        implementation 'com.google.firebase:firebase-core:17.0.1'
    }

    迁移日志

    如果您使用了 Firebase 崩溃报告自定义日志,则还必须为 Firebase Crashlytics 更新这些日志:

    Firebase 崩溃报告Firebase Crashlytics
    FirebaseCrash.log() Crashlytics.log()
    FirebaseCrash.logcat() Crashlytics.log()
    FirebaseCrash.report() Crashlytics.logException()

    设置手动初始化

    与 Firebase 崩溃报告类似,在您将 Crashlytics 添加到您的应用后,Firebase Crashlytics SDK 会立即自动初始化 Crashlytics。如果您采用手动方式初始化报告功能,Crashlytics 也有办法做到这一点:

    1. AndroidManifest.xml 文件中的 Firebase 崩溃报告的 meta-data 标记替换为 Crashlytics 中的相应标记:
      <!-- Delete Crash Reporting:
      <meta-data
          android:name="firebase_crash_collection_enabled"
          android:value=false />
      
           Add Crashlytics: -->
      <meta-data
          android:name="firebase_crashlytics_collection_enabled"
          android:value="false" />
      
    2. 将相关 Activity 中的初始化调用也替换掉:

      Java

      /*   Delete Crash Reporting:
      FirebaseCrash.setCrashCollectionEnabled(true);
           Add Crashlytics: */
      Fabric.with(this, new Crashlytics());

      Kotlin

      /*   Delete Crash Reporting:
      FirebaseCrash.setCrashCollectionEnabled(true)
           Add Crashlytics: */
      Fabric.with(this, Crashlytics())
    注意:Crashlytics 一初始化后就会不断报告崩溃,直到用户关闭应用为止。如果您想让用户能够在您初始化 Crashlytics 之后自主选择退出报告功能,则用户必须重启您的应用,之后更改才能生效。