解决 Firebase 初始化错误:“Default FirebaseApp is not initialized“

这个错误信息提示了 Firebase 没有被正确初始化,具体错误是:

Caused by java.lang.IllegalStateException

Default FirebaseApp is not initialized in this process com.moonjoy.cointalf. Make sure to call FirebaseApp.initializeApp(Context) first.

意思是:Firebase 默认的应用没有被初始化。在调用 Firebase 服务之前,你必须先初始化 Firebase。

解决步骤:

  1. 确保 Firebase SDK 已正确集成到项目中
  • 你需要确保你已经将 Firebase SDK 添加到你的 build.gradle 文件中,通常是 app 模块下的 build.gradle 文件。
build.gradle 文件中添加 Firebase 依赖:
复制代码
dependencies { 

    // Firebase 核心依赖 
    implementation 'com.google.firebase:firebase-analytics:21.0.0' 
    // 添加你所需要的其他 Firebase 服务依赖(例如 Firestore、Auth、Realtime Database 等) }
  • 你需要在 Project-level build.gradle 中确认已经添加了 Firebase 作为插件。

    复制代码
    buildscript { 
      dependencies { 
        // 使 Firebase 可用 
       classpath 'com.google.gms:google-services:4.3.10' 
    
     } 
    }
  • 确保你在 app-level build.gradle 文件的底部添加了:

    复制代码
    apply plugin: 'com.google.gms.google-services'

2. 初始化 Firebase

确保在应用的启动过程中,在 Application 类或 MainActivityonCreate() 方法中初始化 Firebase。

如果没有自定义 Application 类,建议在 MainActivity 中初始化:
复制代码
import com.google.firebase.FirebaseApp; 
import com.google.firebase.analytics.FirebaseAnalytics; 
public class MainActivity extends AppCompatActivity { 

@Override protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     // 初始化 Firebase FirebaseApp.initializeApp(this); 
     // 确保这里是调用了初始化方法   
     setContentView(R.layout.activity_main); 
     // 之后可以使用 Firebase 相关功能了 
     FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(this); 
 } 
}
如果你使用了自定义的 Application 类:
  1. AndroidManifest.xml 中注册你的 Application 类:
复制代码

<application android:name=".MyApplication" android:label="MyApplication" android:icon="@mipmap/ic_launcher"> ... </application>

  1. MyApplication.java 中初始化 Firebase:

    复制代码
    import android.app.Application;
    import com.google.firebase.FirebaseApp; 
    public class MyApplication extends Application {
        @Override 
        public void onCreate() { 
              super.onCreate(); 
              // 初始化 Firebase 
             FirebaseApp.initializeApp(this);
         }
     }

3. 确认 google-services.json 是否放在了正确的位置

确保你已经将 Firebase 的 google-services.json 文件放置到 app/ 文件夹中(与 src 文件夹平级),并且该文件没有被误删除或者损坏。

4. 清理与重建项目

有时候,Gradle 构建会出现问题,导致 Firebase 无法正确初始化。试着执行以下操作:

  • 点击 Build -> Clean Project

  • 点击 Build -> Rebuild Project

5. 确保 Firebase 配置正确

如果上面步骤完成后还是有问题,可以尝试重新下载 google-services.json 文件,确保 Firebase 控制台中的项目配置与当前 Android 项目的包名一致。


总结:

  1. 确保 Firebase 依赖已经正确集成到 build.gradle 文件中。

  2. Application 类或 MainActivity 中调用 FirebaseApp.initializeApp(Context)

  3. 检查 google-services.json 是否放在 app/ 目录下。

  4. 清理并重建项目。

通过这些步骤,你应该能够解决 Firebase 初始化失败的问题。如果问题依然存在,建议重新检查 google-services.json 文件的内容是否正确,或者尝试升级 Firebase 版本。