键入“ UploadMappingFileTask”属性“ googleServicesResourceRoot”没有配置值

在更新了类路径之后,我就不能再构建应用程序的发布版本了。

FAILURE: Build failed with an exception.


* What went wrong:
A problem was found with the configuration of task ':app:uploadCrashlyticsMappingFileRelease' (type 'UploadMappingFileTask').
- Type '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.






A problem was found with the configuration of task ':app:uploadCrashlyticsMappingFileRelease' (type 'UploadMappingFileTask').
- Type 'UploadMappingFileTask' property 'googleServicesResourceRoot' doesn't have a configured value.

我试图阅读变更日志,但没有关于它的指南或文档。

10278 次浏览

I also didn't found anything, for now changing to firebase-crashlytics-gradle to 2.6.1 seems ok.

To fix it, the Google Services plugin should be applied before any Firebase plugin in /app/build.gradle.

This produces the error:

apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.firebase-perf'

While this does not:

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'com.google.firebase.firebase-perf

Note that com.google.gms.google-services is ABOVE com.google.firebase.crashlytics.

When you update to com.google.firebase:firebase-crashlytics-gradle:2.7.0 and sync the changes, you are given a message stating that is the fix as follows:

Configure project :app
Crashlytics could not find Google Services plugin task: processReleaseGoogleServices. Make sure com.google.gms.google-services is applied BEFORE com.google.firebase.crashlytics. If you are not using the Google Services plugin, you must explicitly declare `googleServicesResourceRoot` inputs for Crashlytics upload tasks.

Make sure

'com.google.gms.google-services'

is applied before:

'com.google.firebase.crashlytics'

Fixed the error for me.

My project didn't use 'com.google.gms.google-services'. You need to add 'com.google.gms.google-services' to the app level Gradle file in the plugins and, its corresponding classpath dependency classpath 'com.google.gms:google-services:latest-version' in the project level Gradle file.

Also make sure com.google.gms.google-services comes before com.google.firebase.crashlytics as stated by other answers.

I already had the apply plugin lines in the correct order, yet I was still getting the build error and sync warning about the plugin task not being found. I considered the possibility of upgrading google-services, but version 4.1.0 was as high as I could make it. Any higher, and I would get errors about library dependencies not being found.

It turned out not only did I need to upgrade google-services to 4.3.14, defining the mavenCentral() repository in the project-level build.gradle wasn't enough; it also needed to be defined in the app-level build.gradle.

buildscript {
repositories {
google()
mavenCentral() // Add this line
}
dependencies {
classpath 'com.google.gms:google-services:4.3.14'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.1'
}
}
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'

Nowhere in the Get Started documentation did it mention needing to do this, so hopefully, this will help anyone who gets stuck in the same situation I was in.