1

FirebaseクラッシュレポートとFirebase Remote Configを使用しています。両方のバージョンは9.8.0です。「デフォルトのFirebaseAppがこのプロセスで初期化されていないため」アプリケーションがクラッシュする

ほとんどのデバイスの設定は完全に動作します(私はSet up crash reportingに従った)。しかし、アプリケーションのonCreateメソッドでRemote Configを初期化しようとすると、小さなパーセンテージのデバイス(実際には最高のオカレンスでクラッシュする)でクラッシュします。前のバージョン10.0.0へ

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-firebase-initialize-on-android.html?m = 1 さらに、私はそれが問題であったが、小さなパーセンテージのデバイスだけでなく、常にクラッシュするだろう。 –

答えて

4

、Firebaseクラッシュbackground_crashという名前のアプリで追加のプロセスを作成しました。 AppApplicationクラスのインスタンスが作成され、background_crashなど、アプリケーションの各プロセスで実行されます。

アプリケーションクラスでFirebaseサービスの初期化を実行する場合は、初期化がbackground_crashで実行されないようにガードを追加する必要があります。それを行うには:

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

もう一つの解決策はFirebase 10.0.1の最新バージョンにアップグレードすることです。

この回答が有効であると仮定すると、デバイスにインストールされているGoogle Playサービスのバージョンが要因で、障害のあるデバイスに古いバージョンがない限り、一部のデバイスでのみ障害が発生する理由を説明できません。

+1

「Google Playのサービスのバージョンを除いて...」:ありそうもありません。 Remote Configにアクセスする前に 'initializeApp()'が終了していないことに起因する競合状態が存在する可能性が高くなります。 – Kato

+0

こんにちは私はこの問題は、他のシステムコードからクラッシュせずに実行されているから、私のアンドロイドスタジオのみから引き起こして、この問題が発生しています。 – NehaK

+0

私はMyApplication.onCreate()で同様の問題が発生しています。私のライブラリの一部で追加のプロセスが作成されているかどうかを確認する方法はありますか? –

関連する問題