将 crashlytics 插件“com.google.firebase.crashlytics”应用到我的项目后,
我的构建失败并出现异常:
// build.gradle.kts
buildscript {
repositories {
google()
}
dependencies {
classpath("com.google.firebase:firebase-crashlytics-gradle:2.7.1")
}
}
apply(plugin = "com.google.firebase.crashlytics")
$ ./gradlew
...
FAILURE: Build failed with an exception.
* What went wrong:
A problem was found with the configuration of task ':platforms:mobile:android:app:uploadCrashlyticsMappingFileCglDevRelease' (type 'UploadMappingFileTask').
- In plugin 'com.google.firebase.crashlytics' type 'com.google.firebase.crashlytics.buildtools.gradle.tasks.UploadMappingFileTask' property 'googleServicesResourceRoot' doesn't have a configured value.
Reason: This property isn't marked as optional and no value has been configured.
Possible solutions:
1. Assign a value to 'googleServicesResourceRoot'.
2. Mark property 'googleServicesResourceRoot' as optional.
如何在不使用 google-play-services 插件的情况下避免此 gradle 异常,并且仍然将成功的混淆映射上传到 firebase crashlytics?googleServicesResourceRoot
的 firebase-crashlytics-gradle 插件是什么? ?建立 flavor 资源根? google-services.json
所在的目录文件位于? (我不使用)?我找到了Type 'UploadMappingFileTask' property 'googleServicesResourceRoot' doesn't have a configured value ,具有相同的根本原因和公认的解决方案,即在 crashlytics 插件之前应用 google-play-services 插件。
但是,我们没有使用 google-play-services 插件,并且我们不打算在 future 使用它。
最佳答案
我们也没有使用谷歌服务插件,一开始就遇到了这个错误。为了修复它,我们这样做了:
对于我们想要连接到 Firebase 和 Crashlytics 的每种风格,我们都有一个名为 values.xml
的 xml 资源文件。在资源文件 project_id
中包含所需的 Firebase 属性(google_app_id
、google_crash_reporting_api_key
、values
等)文件夹(例如 app/src/prodRelease/res/values/values.xml
)。
在应用级别 build.gradle.kts
我们有:
project.afterEvaluate {
tasks.withType<UploadMappingFileTask> {
val myDirProp = project.objects.directoryProperty().fileValue(file("src/prodRelease/res"))
googleServicesResourceRoot.value(myDirProp)
}
}
这将设置 googleServicesResourceRoot
并成功将映射文件上传到 Crashlytics。
关于android - firebase-crashlytics-gradle 插件失败,异常 'googleServicesResourceRoot' 没有配置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69064214/