2017-04-07 3 views
2

J'utilise une bibliothèque propre à gérer les accidents de force à proximité:l'aide d'un gestionnaire de plantage personnalisé avec Firebase installé

https://github.com/Ereza/CustomActivityOnCrash

Il a travaillé beaucoup jusqu'à ce que je décide d'ajouter Notifications Firebase à mon application. Je n'ai sélectionné les notifications et en tant que tel, je ne l'ai ajouté la dépendance suivante:

compile 'com.google.firebase:firebase-messaging:10.0.1' 

Pour une raison quelconque, Firebase Accident Reports est en cours d'initialisation aussi, parce que le gestionnaire d'accident personnalisé voir est et affiche même le message suivant :

E/CustomActivityOnCrash: IMPORTANT WARNING! You already have an UncaughtExceptionHandler, 
are you sure this is correct? If you use ACRA, Crashlytics or similar libraries, 
you must initialize them AFTER CustomActivityOnCrash! Installing anyway, but your 
original handler will not be called. 

mon gestionnaire crash personnalisé est la première chose initialisée dans mon (application) méthode onCreate(), donc je ne vois pas où ni comment empêcher Firebase rapport d'incident de chargement/lui-même l'initialisation.

Toute aide serait grandement appréciée!

+1

Est-ce que votre sortie logcat pour le démarrage de l'application contient des messages liés à 'FirebaseCrash'? Quand je lance une application sans FirebaseCrash, je vois 'D/FirebaseApp: com.google.firebase.crash.FirebaseCrash n'est pas lié. Ignorer l'initialisation'. Lorsque FirebaseCrash est présent, je vois 'I/FirebaseCrash: FirebaseCrash reporting initialisé'. –

+0

Attendez que je vois ceci maintenant: I/FirebaseCrashApiImpl: FirebaseCrashApiImpl créé par ClassLoader p [DexPathList [..... I/FirebaseCrash: rapport FirebaseCrash initialisé com.google ..... – buradd

Répondre

1

J'ai trouvé ma réponse grâce à @ BobSnyder de commentaire - il me conduit à chercher et trouver cette précédente question/réponse:

How to disable default Firebase crash reporting?

et, finalement, je me sers de cette réponse pour résoudre mon problème:

If you want to disable the Firebase Analytics Crash Reporting, use the below 
code inside app.gradle file. 

configurations { 
    all*.exclude group: 'com.google.firebase', module: 'firebase-crash' 
} 
1

Je suis le développeur de cette bibliothèque. Les versions jusqu'à 1.5.0 empêchent Firebase Crash Reporting de fonctionner. L'application ne plantera pas, mais le UncaughtExceptionHandler original défini en interne par Firebase ne sera jamais appelé, donc vous n'obtiendrez pas de données de plantage dans votre console Firebase.

Cela se produit même si CustomActivityOnCrash.install() est appelé comme la première ligne de votre Application classe, parce Firebase initialise son UncaughtExceptionHandler en tant que fournisseur, donc finir exécuté avant que l'objet Application est instancié.

La version 2.0.0 de la bibliothèque résout ce problème en utilisant la même procédure que Firebase (avec un fournisseur) mais avec un initOrder plus élevé, donc elle s'exécute avant celle de Firebase.

Mettez à jour votre dépendance pour le faire fonctionner comme prévu (toutefois, être au courant des changements d'API depuis la version 2.x n'est pas compatible avec le code 1.x):

dependencies { 
    compile 'cat.ereza:customactivityoncrash:2.0.0' 
}