Search code examples
firebasecrashlyticscrashlytics-android

Type 'UploadMappingFileTask' property 'googleServicesResourceRoot' doesn't have a configured value


After updating the classpath I can no longer build a release version of the app.

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.

I tried to read the changelog but no guidelines or documentation about it.


Solution

  • 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.