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 文件