You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase初始化异常求助:已调用initializeApp仍报错的排查

Firebase初始化报错:Default FirebaseApp未初始化问题排查与解决

问题场景与代码

我在开发中通过以下代码实现Firebase消息服务并获取Token:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);
    mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
    initComponents();
    FirebaseApp.initializeApp(this);
    FirebaseMessaging.getInstance().getToken().addOnSuccessListener(s -> {
        Log.d("TOKEN", "Token" + s);
        Exponea.INSTANCE.handleNewToken(getApplicationContext(), s);
    });    
}

相关Gradle配置

应用级build.gradle

implementation platform('com.google.firebase:firebase-bom:32.8.0')
implementation 'com.google.firebase:firebase-analytics'

项目级build.gradle

classpath 'com.google.gms:google-services:4.4.1'

运行时错误

Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.versatilemobitech.prive. Make sure to call FirebaseApp.initializeApp(Context) first.

尽管已经在Splash Activity中调用了FirebaseApp.initializeApp(this),但仍出现该错误,请问哪里操作有误,该如何解决?


问题原因与解决方法

1. 初始化顺序错误

代码中先调用FirebaseAnalytics.getInstance(this),再初始化FirebaseApp,这会导致FirebaseAnalytics尝试获取未初始化的Firebase实例,直接触发异常。

解决:
调整代码执行顺序,先完成FirebaseApp初始化,再获取FirebaseAnalytics实例:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);
    // 优先初始化FirebaseApp
    FirebaseApp.initializeApp(this);
    // 再获取FirebaseAnalytics实例
    mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
    initComponents();
    FirebaseMessaging.getInstance().getToken().addOnSuccessListener(s -> {
        Log.d("TOKEN", "Token" + s);
        Exponea.INSTANCE.handleNewToken(getApplicationContext(), s);
    });    
}

2. 缺少Google Services配置文件

若项目未添加google-services.json文件(Android平台),Firebase无法完成基础配置,即使手动调用initializeApp也会初始化失败。

解决:
从Firebase控制台下载对应项目的google-services.json,将其放置在项目的app/目录下。

3. Firebase依赖不完整

当前仅引入Firebase Analytics依赖,但代码中使用了Firebase Messaging功能,缺少对应依赖会导致初始化异常。

解决:
在应用级build.gradle中添加Firebase Messaging依赖:

implementation platform('com.google.firebase:firebase-bom:32.8.0')
implementation 'com.google.firebase:firebase-analytics'
// 新增Firebase Messaging依赖
implementation 'com.google.firebase:firebase-messaging'

4. 多进程场景冲突

如果应用存在多进程配置,非主进程中调用Firebase API会触发该错误——Firebase默认仅在主进程完成初始化。

解决:
若需在非主进程使用Firebase,需针对该进程单独初始化;或在AndroidManifest.xml中限制Firebase组件仅在主进程运行:

<!-- 示例:限制Firebase Messaging服务仅在主进程运行 -->
<service
    android:name="com.google.firebase.messaging.FirebaseMessagingService"
    android:process=":main">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

内容的提问来源于stack exchange,提问作者MARSH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 14:21:49