After applying the crashlytics plugin 'com.google.firebase.crashlytics' to my project, my build fails with an exception:
// 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.
How can I avoid this gradle exception without using the google-play-services plugin and still have a successful obfuscation mapping uploaded to firebase crashlytics?
What is the firebase-crashlytics-gradle plugin expecting from googleServicesResourceRoot? Build flavor resources root? The directory where the google-services.json file is located at? (which I don't use)?
I found Type 'UploadMappingFileTask' property 'googleServicesResourceRoot' doesn't have a configured value, with the same root cause and an accepted solution, which is to apply the google-play-services plugin prior to the crashlytics plugin.
However, we are not using the google-play-services plugin and we don't intend to do it in the future.