-
[Android] Make sure to call FirebaseApp.initializeApp(Context) first.Android 2019. 3. 20. 11:10
특정 단말에서만 났던 에러.
앱 재설치 후 첫 실행시에만. 앱이 죽는다.
로그는 다음과 같았고,
...더보기--------- beginning of crash
2019-03-20 10:21:47.709 4309-4309/com. E/AndroidRuntime: FATAL EXCEPTION: main
Process: com., PID: 4309
java.lang.RuntimeException: Unable to create application com.Application: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com. Make sure to call FirebaseApp.initializeApp(Context) first.
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5879)
at android.app.ActivityThread.-wrap3(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1699)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@16.0.2:240)
at com.google.firebase.iid.FirebaseInstanceId.getInstance(Unknown Source)
at com.google.firebase.iid.zzaw.<init>(Unknown Source)
at com.google.firebase.iid.zzaw.<init>(Unknown Source)
at com.google.firebase.iid.FirebaseInstanceId.<init>(Unknown Source)
at com.google.firebase.iid.FirebaseInstanceId.<init>(Unknown Source)
at com.google.firebase.iid.zzao.create(Unknown Source)
at com.google.firebase.components.zzj.zza(com.google.firebase:firebase-common@@16.0.2:43)
at com.google.firebase.components.zzk.get(com.google.firebase:firebase-common@@16.0.2)
at com.google.firebase.components.zzj.get(com.google.firebase:firebase-common@@16.0.2:54)
at com.google.firebase.components.zza.get(com.google.firebase:firebase-common@@16.0.2:26)
at com.google.firebase.components.zzf.get(com.google.firebase:firebase-common@@16.0.2:34)
at com.google.firebase.components.zzf.zza(com.google.firebase:firebase-common@@16.0.2:82)
at com.google.firebase.FirebaseApp.zze(com.google.firebase:firebase-common@@16.0.2:761)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@16.0.2:359)
at com.fcm.FcmApp.createApp(FcmApp.kt:36)
at com.Application.onCreate(AppApplication.java:60)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1032)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5876)
at android.app.ActivityThread.-wrap3(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1699)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
여기서 Make sure to call FirebaseApp.initializeApp(Context) first. 에 주목해보면
Application 단에서
public class AppApplication extends Application { public void onCreate() { super.onCreate(); FirebaseApp.initializeApp(context, optionsBuilder.build(), APP_NAME); }
하지만 이미 나는 이 코드가 있었고 뭐가 문제인가 찾아보니, AndroidManifest.xml에 allowBackup 설정이 없었다.
FCM도 SharedPreference에 정보를 저장해두는 부분이 있는 듯 하다. 안에 까보면 SharedPreference 를 사용하는 부분이 있다.
아래처럼 추가해주면 더이상 저 에러는 볼 수 없음.
<application android:name=".AppApplication" android:allowBackup="false" android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_launcher_round" android:theme="@style/AppTheme" tools:replace="android:icon,android:theme,android:allowBackup">
'Android' 카테고리의 다른 글