Firebase Crashlytics - java.lang.IllegalStateException:缺少 Crashlytics 构建 ID

Posted

技术标签:

【中文标题】Firebase Crashlytics - java.lang.IllegalStateException:缺少 Crashlytics 构建 ID【英文标题】:Firebase Crashlytics - java.lang.IllegalStateException: The Crashlytics build ID is missing 【发布时间】:2020-11-29 04:28:06 【问题描述】:

根据我们的应用程序中添加的新版本 Firebase Crashlytics,应用程序在启动时停止。

java.lang.RuntimeException:无法获取提供程序 com.google.firebase.provider.FirebaseInitProvider:java.lang.IllegalStateException:缺少 Crashlytics 构建 ID。当您的应用的构建配置中缺少 Crashlytics 工具时,就会发生这种情况。请查看 Crashlytics 入职说明并确保您拥有有效的 Crashlytics 帐户。

应用级 Gradle 应用插件:'com.google.firebase.crashlytics'

实施 'com.google.firebase:firebase-crashlytics:17.1.1'

项目级 Gradle 类路径 'com.google.gms:google-services:4.3.3' 类路径'com.google.firebase:firebase-crashlytics-gradle:2.2.0'

按照 Firebase 指南中的分步操作 Firebase Guides

但是早期的 Fabric 版本比现在的要好太多了。

任何帮助将不胜感激。

【问题讨论】:

有同样的问题。一旦我弄清楚就会在这里发布解决方案 这个错误很烦人。我们有它,我已尽一切努力帮助修复它,但没有运气 【参考方案1】:

在应用程序级别的 build.gradle 中,添加以下导入apply plugin: 'com.google.gms.google-services'apply plugin: 'com.google.firebase.crashlytics'

然后,在 gradle/wrapper/gradle-wrapper.properties 文件中,将您的 gradle 版本升级到 5.6.4distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

我曾经使用 gradle 5.1.1 运行我的应用程序并升级到 5.6.4 版本解决了我的问题

希望对你有帮助!

【讨论】:

谢谢,这有助于解决问题。我在services.gradle.org/distributions 查到 5.6.4 是最新的版本 5。 这就是谷歌文档很烂的原因。没有提到这一点。浪费了 1 小时试图通过更新 google-services.json 来添加 id 等等。 还记得在根 build.gradle 中包含 Amir Raza 提到的 buildscript 依赖类路径【参考方案2】:

这通常发生在 apply plugin: 'com.google.firebase.crashlytics' 插件在 build.gradle 应用程序级别中丢失时。

【讨论】:

【参考方案3】:

如果有人对此问题仍有疑问,请尝试在项目级 gradle 中使用 crashlytics gradle verions 2.1.1。我这样做解决了我的问题。

buildscript        
    ...
    dependencies 
        ... 
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.1.1'    
    

【讨论】:

虽然从 2.4.1 降级到 2.1.1(甚至 2.2.1)确实解决了这个问题,但在 gradle/wrapper/gradle-wrapper 中更新 cradle 版本可能是一个更好的选择.properties 文件,由 xerib 指示:***.com/a/63795391/2439941【参考方案4】:

请补充

 classpath 'com.google.firebase:firebase-crashlytics-gradle:x.x.x'

到您项目的构建 gradle。并且不要忘记将以下行添加到您应用的构建 gradle 中

plugins 
    id 'com.android.application'
    id 'com.google.gms.google-services'
    id 'com.google.firebase.crashlytics'

【讨论】:

【参考方案5】:

如果您忘记包含,也会发生这种情况 classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1' 在你的项目级别 build.gradle

buildscript 
    repositories 
        // Check that you have Google's Maven repository (if not, add it).
        google()
    

    dependencies 
        // ...

        // Check that you have the Google services Gradle plugin v4.3.2 or later
        // (if not, add it).
        classpath 'com.google.gms:google-services:4.3.8'

        // Add the Crashlytics Gradle plugin
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    


allprojects 
    repositories 
        // Check that you have Google's Maven repository (if not, add it).
        google()
    

【讨论】:

【参考方案6】:

添加这一行

implementation "com.google.firebase:firebase-iid"

这将解决这个问题

【讨论】:

以上是关于Firebase Crashlytics - java.lang.IllegalStateException:缺少 Crashlytics 构建 ID的主要内容,如果未能解决你的问题,请参考以下文章

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

如何在 iOS 上使用 Firebase 以编程方式获取 Crashlytics 版本

使用 Firebase/Crashlytics 更改 Fabric 和 Crashlytics pod 以上传缺少的必需 dSYM

Fabric Crashlytics 到 Firebase Crashlytics 迁移询问 dSYMs 文件

如何从 Fabric Crashlytics 迁移到 Firebase Crashlytics?

与 Crashlytics 一起运行 Firebase-Auth + Firebase-UI