android - firebase-crashlytics-gradle 插件失败,异常 'googleServicesResourceRoot' 没有配置值

标签 android firebase gradle android-gradle-plugin crashlytics-android

将 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_idgoogle_crash_reporting_api_keyvalues 等)文件夹(例如 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/

相关文章:

javascript - 使用 JS 的 Firebase - 努力更新值(如果存在)或添加(如果不存在)

android - FirebaseUI 身份验证 - Facebook 登录错误 : Unsuccessful debug_token response from Facebook

android - 从 'compile' 切换到 'implementation' 会出现 DexPathList 错误

android - 无法在线程内调用 getApplicationContext()

java - DefaultHttpClient超时设置为10秒但只需要1秒就超时

java - Firebase 如何在 Auth 中定义当前用户?

java - 未找到 ID 为 'sonar' 的插件?

debugging - 如何在 Netbeans 中使用 jvm args 调试 Gradle 项目?

java - 根级别的 Android 应用程序透明度和窗口大小

php - 带标点符号的sql查询