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 :
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 :(
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