Nous programmons une application Android et essayons d'implémenter Crashlytics dans notre application.
Nous avons différents types de problèmes. Version que nous avons utilisée: Version studio Android: 3.3
Version Gradle: classpath 'com.android.tools.build:gradle:3.3.1'
Plugin: Fabric pour Android studio v4.3.0
Implémentation: implémentation ('com.crashlytics.sdk.android:crashlytics:2.9.9') {transitive = true} implémentation ('io.fabric.sdk.android:fabric:1.4.0@aar') {transitive = true}
gradle-wrapper.properties: distributionUrl = https: //services.gradle.org/distributions/gradle-5.2.1-all.zip
Premier problème:
Lorsque nous implémentons Crashlytics, vous savez que les développeurs ont 3 étapes. Nous ne pouvons pas sauter 2,3. étapes. Parce que nous n'avons pas encore compilé notre application. Nous avons eu deux erreurs principales:
Erreur 1:
Cette application repose sur Crashlytics. Veuillez vous inscrire pour y accéder sur https://fabric.io/sign_up ,
Erreur 2:
adb shell setprop log.tag.Fabric DEBUG adb shell setprop log.tag.CrashlyticsCore DEBUG
Il a donc fallu désactiver "Debug Mod" pour terminer l'implémentation de Crashlytic.
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="true" />
Et la mise en œuvre était terminée.
Mais nous ne voulons pas faire cela. Parce que, quand nous avons un crash, il ne fait aucun rapport à Crashlytics ou Firebase. Nous voulons également avoir des plantages de mod de débogage.
Lorsque nous avons supprimé -> ....disabled(BuildConfig.DEBUG)
- il s'affiche à nouveau: Erreur 1, Erreur 2.
Deuxième problème:
In gradle; apply plugin:'io.fabric ', nous avons fait la ligne de commentaire, lorsque nous supprimons la ligne de commentaires, nous avons des erreurs ci-dessous:
Erreur 3:
buildTypes { debug { manifestPlaceholders = [crashlyticsEnabled: true] minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' manifestPlaceholders = [crashlyticsEnabled: false] }
Lorsque nous l'avons recherché, cette erreur était liée au nouveau gradle de studio Android. Nous avons donc dû créer à nouveau la ligne de commentaire «appliquer le plugin: fabric.io».
Il n'y a pas de bonne solution à ce sujet.
Pour exécuter l'application, nous ne pouvons pas supprimer:
new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()
: (en raison de Error1 Error2)
Nous essayons donc d'activer le rapport de différentes manières:
Qu'avons-nous essayé d'ajouter jusqu'ici?
1. Activer en gradle:
WARNING: API 'variant.getExternalNativeBuildTasks()' is obsolete and has been replaced with 'variant.getExternalNativeBuildProviders()'. It will be removed at the end of 2019. For more information, see https://d.android.com/r/tools/task-configuration-avoidance. To determine what is calling variant.getExternalNativeBuildTasks(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace. Affected Modules: app
2. Activer dans le manifeste
Crashlytics crashlyticsKit = new Crashlytics.Builder() .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()) .build(); Fabric.with(this, crashlyticsKit); // Tod from Fabric suggested in stackoverflow
3. activer dans ADB
E/CrashlyticsCore: 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.
Mais encore, Crashlytics ou Firebase n'obtient aucun rapport Debug Crash.
Nous attendons vos solutions.
13 Réponses :
J'ai réussi à gradle.properties
sans ajouter android.debug.obsoleteApi=true
dans gradle.properties
.
J'ai essentiellement connecté 3 versions à différents projets Firebase
en utilisant une configuration de saveur appropriée et le fichier google-services.json
fourni.
Ce qui manque à votre fichier gradle en le comparant au mien, c'est ceci:
flavor1: assets java res AndroidManifest google-services.json (for flavor1) flavor2: assets java res AndroidManifest google-services.json (for flavor2)
apply plugin: "io.fabric"
Et enfin: implementation "com.google.firebase:firebase-crash:16.2.1"
Je sais que Fabric
va fermer cette année, mais en exécutant les applications de cette façon, ils se sont connectés à la console Firebase
sans aucun problème.
En ce qui concerne la configuration de la saveur, j'ai téléchargé trois fichiers json
différents (j'ai 3 saveurs) et les ai ajoutés dans le répertoire racine de chaque saveur. Par exemple:
dependencies { classpath 'com.android.tools.build:gradle:3.2.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath "com.google.gms:google-services:$google_services_version" // google-services plugin classpath "io.fabric.tools:gradle:$fabric_tools_version" }
Et c'est tout. J'espère que cela aide quelqu'un.
ÉDITER
Donc, comme vous le savez peut-être déjà, Fabric
s'arrête et Firebase Crashlytics
est prêt, ce qui rend cette réponse obsolète.
Veuillez cocher ici pour pouvoir mettre à jour votre application avec succès et éviter les comportements étranges.
En fait, je pense que le tissu a résolu cette erreur. nous supprimons obsolete = true de notre code. De plus, pour différentes saveurs, vous n'avez pas besoin d'ajouter google-services.json séparé. Vous pouvez tous les fusionner dans un seul fichier google-service.json
J'ai eu le même problème dans mon application (Android Studio 3.4.1)
J'ai corrigé la connexion avec le plugin Fabric. Créer un compte et y associer mon application.
Cela se produit également si vous définissez ext.enableCrashlytics = false
pour une variante de construction mais que vous essayez toujours d'appeler Fabric.with(context, Crashlytics())
dans le code d'initialisation de votre application. ext.enableCrashlytics = false
désactive le plugin de construction (une optimisation que j'ai faite pour accélérer mes builds de débogage) mais bien sûr, l'ID de build sera manquant.
Dans mon cas, je viens de mettre à jour l' implementation 'com.google.firebase:firebase-core:16.0.9'
vers l' implementation 'com.google.firebase:firebase-core:17.0.1'
et implementation 'com.google.firebase:firebase-core:17.0.1'
ajouté le apply plugin: 'io.fabric'
à mon niveau d'application. Cela a résolu l' erreur 2 pour moi.
il suffit de définir le apply plugin: 'io.fabric'
dans votre build.gradle (app)
Aujourd'hui, j'ai migré de Fabric Crashlytics vers Firebase Crashlytics et j'ai rencontré une erreur fatale qui ne m'a pas empêché de continuer. Voici ce que j'ai fait: Dans app-> build.gradle:
buildTypes { debug { minifyEnabled false debuggable true **ext.enableCrashlytics = false** ext.alwaysUpdateBuildId = false } }
En général build.gradle:
buildscript { repositories { maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'io.fabric.tools:gradle:1.31.2' // Crashlytics plugin }
Et bien sûr, téléchargez le fichier json depuis Firebase et insérez-le dans le dossier de l'application.
Après avoir terminé ces étapes simples, j'ai reçu cette erreur lorsque j'ai lancé l'application
L'ID de build Crashlytics est manquant. Cela se produit lorsque les outils Crashlytics sont absents de la configuration de construction de votre application. Veuillez consulter les instructions d'intégration de Crashlytics et vous assurer que vous disposez d'un compte Crashlytics valide.
Je suis allé vérifier qu'il n'y avait pas de code capable d'appeler d'anciennes méthodes Fabric, et en fait j'ai découvert que dans app-> build.gradle j'avais ceci:
apply plugin: 'io.fabric' dependencies { implementation "com.google.firebase:firebase-core:17.2.0" // Add dependency implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1' }
ext.enableCrashlytics = false c'était certainement une méthode qui faisait référence à l'ancien Fabric, j'ai donc supprimé cette ligne et tout fonctionnait parfaitement! J'espère aider quelqu'un avec ça
Merci! Travaux.
Cette ligne ext.enableCrashlytics = false
est nécessaire pour accélérer les versions de débogage locales ...
Oui, probablement, mais dans ce cas, il appartenait à un ancien tissu, après la migration, il a posé des problèmes. Ils n'ont probablement plus cette méthode.
Dans mon cas, il me manquait le plugin Crashlytics:
apply plugin: 'com.android.application' apply plugin: 'com.google.firebase.crashlytics'
Mettez cette ligne en haut du fichier build.gradle
de votre module, par exemple
apply plugin: 'com.google.firebase.crashlytics'
Dans mon cas, j'ai deux modules qui utilisaient une version différente de FireBase Crashlytics.
J'ai rencontré le même problème lors de la migration de Fabric Crashlytics vers Firebase Crashlytics, les étapes suivantes ont résolu le problème pour moi
Clean
votre projetgoogle-services.json
si vous migrez de Fabric vers Firebase , assurez-vous d'avoir appelé:
FirebaseApp.initializeApp(this)
dans votre application onCreate () .
Plus besoin de relation avec Fabric , suivez simplement ces conseils:
https://firebase.google.com/docs/crashlytics/get-started?platform=android
L'initialisation explicite de Crashlytics n'est plus requise
Dans mon cas, cette ligne me manque: apply plugin: 'com.google.gms.google-services'
Pour référence, https://rnfirebase.io/crashlytics/android-setup
Ajoutez simplement cette ligne dans votre build.gradle (Projet):
apply plugin: 'com.google.firebase.crashlytics'
et ce plugin dans votre build Gradle (app):
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.2.0'
J'ai eu le même problème ici et je l'ai résolu en ajoutant Fabric à Gradle
Voici mon fichier de projet Gradle:
google() jcenter() maven { url 'https://jitpack.io' } maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:3.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'io.fabric.tools:gradle:1.+' classpath 'com.google.gms:google-services:4.3.3' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }
Je suis confronté à un problème similaire. Votre application a-t-elle plusieurs saveurs?
nous avons résolu en ajoutant android.debug.obsoleteApi = true à gradle.properties. le tissu doit se développer pour un nouveau grade. Ils ont des bugs. Cela autorisera toutes les anciennes méthodes et variables. Lorsque le tissu l'a mis à jour, n'oubliez pas de le supprimer.
J'ai réussi à résoudre ce problème sans ajouter ce que vous avez suggéré. J'expliquerai dans quelques-uns comme réponse.
Pourquoi spécifiez-vous Proguard pour les versions de débogage?