Android应用启动崩溃:FirebaseApp未初始化问题求助
应用启动崩溃:FirebaseApp未初始化问题
我用XML和Java开发的应用启动即崩溃,报错信息如下:
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.iseeu, PID: 32375 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.iseeu/com.example.iseeu.MainActivity}: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.iseeu. Make sure to call FirebaseApp.initializeApp(Context) first. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3654) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3806) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2267) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:237) at android.app.ActivityThread.main(ActivityThread.java:8167) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100) Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.iseeu. Make sure to call FirebaseApp.initializeApp(Context) first. at com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:179) at com.google.firebase.storage.FirebaseStorage.getInstance(FirebaseStorage.java:106) at com.example.iseeu.MainActivity.onCreate(MainActivity.java:39) at android.app.Activity.performCreate(Activity.java:7963) at android.app.Activity.performCreate(Activity.java:7952) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3629) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3806) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2267) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:237) at android.app.ActivityThread.main(ActivityThread.java:8167) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
错误定位在MainActivity.java第39行:
FirebaseStorage.getInstance().getReference().child("images").listAll().addOnSuccessListener(new OnSuccessListener<ListResult>() {
我不确定问题出在FirebaseStorage还是getInstance()上,已经被这个问题困扰4周,恳请帮忙解决,谢谢!
问题原因&解决方案
问题根源不是FirebaseStorage本身,而是FirebaseApp未完成初始化就调用了FirebaseStorage.getInstance()——底层获取FirebaseApp实例时失败,抛出了IllegalStateException。
按以下步骤排查修复:
检查Firebase配置文件
- 确认
google-services.json已正确下载并放在app模块的根目录下(和src同级) - 配置文件要对应当前的应用包名,避免包名不匹配导致初始化失败
- 确认
验证Gradle配置
- 在项目根目录的
build.gradle中,确保已添加Google服务插件依赖:dependencies { classpath 'com.google.gms:google-services:4.4.0' // 使用当前最新兼容版本 } - 在app模块的
build.gradle末尾,添加插件应用:apply plugin: 'com.google.gms.google-services' - 同步Gradle,确保所有Firebase相关依赖(比如Firebase Storage)已正确引入
- 在项目根目录的
手动初始化Firebase(自动初始化失效时)
- 新建自定义Application类:
public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); FirebaseApp.initializeApp(this); } } - 在
AndroidManifest.xml的<application>标签中指定该类:<application android:name=".MyApp" ...> ... </application>
- 新建自定义Application类:
完成以上步骤后,重新编译运行应用,应该能解决初始化失败的问题。
内容的提问来源于stack exchange,提问作者Aymen Souilem
相关产品推荐
相关产品推荐

