1

我使用火力地堡崩潰報告和火力地堡遠程配置「默認FirebaseApp沒有在這個過程中初始化」。兩者的版本是9.8.0。應用在某些設備上崩潰,因爲

在大多數設備安裝工程完美(我也跟着Set up crash reporting)。但是,對於小部分設備(它實際上是最高發生的崩潰),當我嘗試在Application onCreate方法中初始化遠程配置時,它會崩潰。

java.lang.RuntimeException: Unable to create application com.company.application.AppApplication: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.company.application. Make sure to call FirebaseApp.initializeApp(Context) first. 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6429) 
    at android.app.ActivityThread.access$1800(ActivityThread.java:229) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:7329) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.company.application. Make sure to call FirebaseApp.initializeApp(Context) first. 
    at com.google.firebase.a.d(Unknown Source) 
    at com.google.firebase.b.a.a(Unknown Source) 
    at com.company.application.d.a.a(SourceFile:21) 
    at com.company.application.AppApplication.onCreate(SourceFile:76) 
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1037) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6426) 
    ... 8 more 
+1

可以編輯你的問題,並添加應用程序類的oncreate方法? (我想知道你是否「確保首先調用FirebaseApp.initializeApp(Context)」。) – petey

+0

@petey您不必這麼做 - 請參閱https://firebase.googleblog.com/2016/12/how -does-火力初始化-ON-android.html?M = 1 再說,我這是問題,那麼它就會崩潰所有的時間和不僅在設備上的很小的比例。 –

回答

4

此前版本10.0.0,火力地堡崩潰造成了您的應用程序名爲background_crash額外的過程。您的應用中的每個流程都會創建並執行AppApplication類的實例,其中包括background_crash

如果你想在你的應用程序類執行的火力地堡服務初始化,您需要添加保護,以防止從初始化中background_crash執行。在方式做到這一點是:

if (!FirebaseApp.getApps(this).isEmpty()) { 
     // Not in crash process. Do your Remote Config init here. 
    } 

另一種解決方案是升級到火力地堡,10.0.1的最新版本。

假設此答案有效,我無法解釋爲什麼故障只發生在某些設備上,除非設備上安裝的Google Play服務版本是一個因素,並且故障設備的版本較舊。

+1

「除非Google Play服務的版本...」:不太可能;更可能的是由於'initializeApp()'在遠程配置訪問之前沒有完成而導致競爭條件。 – Kato

+0

嗨我仍然得到這個問題,這個問題從我的android工作室只造成,從其他系統代碼運行沒有崩潰。 – NehaK

+0

我與MyApplication.onCreate()有類似的問題。我怎樣才能檢查一些額外的過程是由我的一些庫創建的? –