2017-04-07 182 views
2

我一直在使用一個整潔的庫來處理力接近崩潰:使用自定義崩潰處理與火力地堡安裝

https://github.com/Ereza/CustomActivityOnCrash

它已經偉大的工作,直到我決定火力地堡通知添加到我的應用程序。我只選擇了通知,因此我只添加了以下依賴性:

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

出於某種原因,火力地堡崩潰報告也被初始化,因爲自定義崩潰處理看到的它,甚至會顯示以下信息:

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. 

我的自定義崩潰處理是我的(應用)初始化的第一件事onCreate()方法,所以我看不出哪裏或如何防止火力地堡崩潰加載報告/初始化本身。

任何幫助將不勝感激!

+1

貴logcat的輸出應用程序啓動時包含任何與「FirebaseCrash」相關的消息?當我運行沒有FirebaseCrash的應用時,我看到'D/FirebaseApp:com.google.firebase.crash.FirebaseCrash未鏈接。跳過初始化「。當FirebaseCrash存在時,我會看到「I/FirebaseCrash:FirebaseCrash報告已初始化」。 –

+0

等待我現在看到了這個:I/FirebaseCrashApiImpl:由ClassLoader p創建的FirebaseCrashApiImpl [DexPathList [..... I/FirebaseCrash:FirebaseCrash報告初始化com.google ..... – buradd

回答

1

我發現我的回答感謝@ BobSnyder的評論 - 它使我搜索,找到這個以前的提問/回答:

How to disable default Firebase crash reporting?

,最終我用這個答案來解決我的問題:

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

我是該圖書館的開發人員。版本高達1.5.0會導致Firebase崩潰報告停止工作。該應用不會崩潰,但由Firebase內部設置的原始UncaughtExceptionHandler永遠不會被調用,因此您的Firebase控制檯中不會收到崩潰數據。

發生這種情況即使CustomActivityOnCrash.install()被稱爲你的Application類的第一線,因爲火力地堡初始化其UncaughtExceptionHandler作爲一個供應商,因此結束了Application對象實例化之前執行。

該庫的2.0.0版通過使用與Firebase(使用提供程序)相同的過程來修復此問題,但使用更高的initOrder,因此它在Firebase之前執行。

更新你的依賴,使其按預期工作(但是,要注意的API的變化,因爲2.x版本是不是1.x的代碼兼容):

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