Crashlytics Fabric.io 已被弃用。

5

有人知道在 Android 应用程序中使用 Firebase 实现 Crash report 的正确方法吗?

我已经阅读了 Firebase crashlytics 文档,其中提到了实现 Fabric.io。然而,Fabric.io 已经被弃用,在文档中也提到了移除 fabric.io 依赖。

Firebase https://firebase.google.com/docs/crashlytics/get-started?platform=android

enter image description here

Fabric.io 参考 https://docs.fabric.io/android/examples/sampleapp/index.html

Fabric.io 是一个针对移动应用程序的平台,提供分析、崩溃报告和推送通知等功能。该平台可以帮助开发者更加高效地进行应用程序开发与管理。上述链接是 Fabric 提供的 Android 应用程序示例代码,可以作为参考学习使用。

enter image description here

没有fabric.io依赖项,我会遇到以下错误

java.lang.RuntimeException: 无法获取提供程序com.crashlytics.android.CrashlyticsInitProvider:io.fabric.sdk.android.services.concurrency.UnmetDependencyException:缺少Crashlytics构建ID。当您的应用程序的构建配置中缺少Crashlytics工具时,就会发生这种情况。请查看Crashlytics入门说明,并确保您拥有有效的Crashlytics帐户。

注意: 请比较两个参考文档中的步骤,我已经浏览了所有链接,但没有找到正确的方法,所以在这里询问。

我确定没有人浏览这些链接,所以评分很低。我已经附上了Firebase和Fabric.io文档步骤屏幕截图


2
我的问题是要进行全新的集成,不需要使用Fabric.io,因此我不需要进行迁移。 - Pratik
1
你按照你发布的 Firebase 链接中的步骤操作了吗? - MichaelStoddart
如果不需要进行迁移,那么就更简单了。只需按照您发布的链接操作即可。您需要做的唯一一件事是在控制台中创建一个项目,并将 google-services.json 文件放置在本地项目中(然后按照其余步骤操作)。 - sanjeev
1
@sanjeev,您没有理解问题。我的问题是Firebase所说的集成fabric.io的正确方式是什么,而fabric.io文档却说不要这样做。 - Pratik
@Pratik 他们已经将所有内容从控制台移动,但仍未完全从 fabric.io 中删除它。在 Google 中发生的类似情况是 GoogleAnalytics 正在迁移到 FirebaseAnalytics。虽然所有内容都已迁移,但他们仍未从 Fabric 中删除它。 - sanjeev
4个回答

2

晚发的帖子

这是解决方案,首先删除所有与fabric.io相关的引用和代码。

在主gradle.build项目级别中

buildscript {
  ext.kotlin_version = '1.4.0'
  repositories {
    google()
    jcenter()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:4.0.2'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

    // Add this line
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0'
  }
}

接下来,在build.gradle应用程序级别中

apply plugin: 'com.google.firebase.crashlytics' // add this line at top

在依赖项区域中。
dependencies {
 implementation 'com.google.firebase:firebase-crashlytics:17.2.2' // add this line
}

1
如果你真的想从应用程序中删除 Fabric SDK 并使用 Firebase SDK,请遵循 升级到 Firebase Crashlytics SDK

本指南介绍了如何从 Fabric Crashlytics SDK 升级到新的 SDK。它描述了新 API 带来的更改、更改的原因以及如何更新代码(如果需要)。

docs.fabric.io 可以获取以下信息,所以我不知道为什么会有这么多负评,我认为这是一个合法的问题。也许是因为你没有像我一样自己做这个研究。

您可以在宣布废弃日期之前继续在应用程序中使用 Fabric Crashlytics SDK。一旦宣布 Fabric Crashlytics SDK 的废弃日期,您将需要升级到新的 Firebase Crashlytics SDK。旧版本的应用程序仍然使用 Fabric Crashlytics SDK,一旦它被废弃,它们将不再提交崩溃报告,但不会出现故障。

但是在此日期之后,似乎它将继续按照正常方式工作,直到另行通知。只需要保持现状即可。

0
其中一个问题是Google页面省略了除英语以外的其他语言的Android教程(这可能是由于错误导致的,我也遇到过这种情况)。 好吧...我对Crashlytics并不是很有经验,想要进行迁移时,我找到了你展示的这些链接,我也感到困惑。 但是据我所知,Fabric Crashlytics已被收购并整合到Firebase中,因此第一个教程已经过时,当时需要使用Fabric库来实现在Firebase中使用Crashlytics。 第二个教程似乎没有明确指定将要实现哪些新库。 我找到的最好的教程是: 官方: https://firebase.google.cn/docs/crashlytics/upgrade-sdk?platform=android#kotlin+ktx_5 或者: https://medium.com/@onkart10/migrating-from-fabric-to-firebase-crashlytics-e8819933c484 希望能帮助其他人。

0
你是在说这个吗?
apply plugin: 'io.fabric'

根据此处的文档,
Crashlytics已经整合到Firebase中,并且增加了新的Firebase专属功能。新应用程序应该在Firebase中使用Crashlytics以获取最新的更新和功能。对于现有用户,Fabric Crashlytics和Fabric仪表板将可用直到2020年3月31日。
我的猜测是,在其他用户迁移之前,可能会有一个宽限期;),并且他们会从Fabric迁移每个其他工具。
到2020年3月31日结束时,与Fabric相关的所有内容都可能被删除。希望我回答了你所说的问题。

1
希望您现在能够查看链接或再次参考我的问题,并比较步骤。 - Pratik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接