web-dev-qa-db-fra.com

L'ajout de Firebase Crashlytics se bloque lors de l'exécution ou échoue à la construction du test unitaire

J'essaie d'ajouter Firebase Crashlytics à une nouvelle Android (module unique, pas de saveurs). Comme Crashlytics est absent du IDE plugin assistant, je utilise les étapes de configuration de https://firebase.google.com/docs/crashlytics/get-started :

  • ajouter des dépendances gradle
  • téléchargez google-services.json et placez-le dans la racine/app

Crashlytics est initialisé pour les versions de version uniquement comme ceci:

class MyApplication: Application() {

  fun onCreate() {
    super.onCreate()
    Fabric.with(
        this,
        Crashlytics.Builder()
            .core(CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
            .build()
    )
  }
}

Le problème # 1 : l'application plante lors de l'initialisation avec

Java.lang.RuntimeException: Unable to get provider com.crashlytics.Android.CrashlyticsInitProvider: io.fabric.sdk.Android.services.concurrency.UnmetDependencyException: The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.

Ajouter

<meta-data
  Android:name="io.fabric.ApiKey"
  Android:value="{blah-blah-key}" />

à AndroidManifest.xml résout le problème (je vois des plantages dans la console Firebase), mais maintenant je reçois

Problème n ° 2 : exécution de tests unitaires (gradle test) échoue avec

> Task :app:fabricGenerateResourcesRelease FAILED
ERROR - Crashlytics Developer Tools error.
Java.lang.IllegalArgumentException: Crashlytics found an invalid API key: blah-blah-key

TL; DR - gradle ne parvient pas à exécuter des tests unitaires si la clé API Fabric est présente dans le manifeste, l'application se bloque lors de l'exécution si elle n'est pas présente. Je soupçonne que je fais quelque chose de mal, mais je ne sais pas quoi exactement :(

5
Mykhailo Gaidai

Eh bien dans mon cas:

classpath 'com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta01'

manquait au niveau du projet build.gradle et

apply plugin: 'com.google.firebase.crashlytics'

manquait au niveau de l'application build.gradle fichier

1
Suraj Vaishnav