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

Mac环境下Xamarin.Forms Android应用Firebase初始化异常求助

Xamarin.Forms Android FirebaseApp 未初始化异常解决(Mac 环境)

问题说明

用MacBook上的Visual Studio 2022社区版(17.5 build 1802)开发Xamarin.Forms,部署到Android模拟器时触发了Firebase未初始化的异常,具体报错如下:

java.Lang.IllegalStateException: Default FirebaseApp is not initialized in this process FoodAllergyFix.Android. Make sure to call FirebaseApp.initializeApp(Context) first.
  at Java.Interop.JniEnvironment+StaticMethods.CallStaticObjectMethod (Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00068] in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/obj/Release/JniEnvironment.g.cs:12890
  at Java.Interop.JniPeerMembers+JniStaticMethods.InvokeObjectMethod (System.String encodedMember, Java.Interop.JniArgumentValue* parameters) [0x00008] in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniStaticMethods.cs:151
  at Firebase.Iid.FirebaseInstanceId.get_Instance () [0x00000] in /Users/runner/work/1/s/generated/com.google.firebase.firebase-iid/obj/Release/monoandroid12.0/generated/src/Firebase.Iid.FirebaseInstanceId.cs:163
  at FoodAllergyFix.Droid.MainActivity.OnCreate (Android.OS.Bundle savedInstanceState) [0x0008a] in /Users/satishdurga/Documents/FAF/develop-satish/food-allergy-fix-mobile-application/FoodAllergyFix.Android/MainActivity.cs:124
  at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00010] in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/obj/Release/monoandroid10/android-31/mcw/Android.App.Activity.cs:2791
  at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_V (_JniMarshal_PPL_V callback, System.IntPtr jnienv, System.IntPtr klazz, System.IntPtr p0) [0x00005] in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:121
  at at (wrapper native-to-managed) Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_V(intptr,intptr,intptr)
  at java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process FoodAllergyFix.Android. Make sure to call FirebaseApp.initializeApp(Context) first.
  at at com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:186)
  at at com.google.firebase.iid.FirebaseInstanceId.getInstance(com.google.firebase:firebase-iid@@21.1.0:1)
  at at crc64cf8f748391fcc334.MainActivity.n_onCreate(Native Method)
  at at crc64cf8f748391fcc334.MainActivity.onCreate(MainActivity.java:41)
  at at android.app.Activity.performCreate(Activity.java:8051)
  at at android.app.Activity.performCreate(Activity.java:8031)
  at at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)
  at at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3608)
  at at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3792)
  at at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
  at at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
  at at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
  at at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210)
  at at android.os.Handler.dispatchMessage(Handler.java:106)
  at at android.os.Looper.loopOnce(Looper.java:201)
  at at android.os.Looper.loop(Looper.java:288)
  at at android.app.ActivityThread.main(ActivityThread.java:7839)
  at at java.lang.reflect.Method.invoke(Native Method)
  at at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
  at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)

之前在Windows上开发构建完全正常,迁移到Mac后才出问题。

解决办法(专门针对Xamarin项目)

1. 手动强制初始化 FirebaseApp

在Android项目的MainActivity的OnCreate方法最开头加这段代码,确保Firebase在任何API调用前初始化完成:

protected override void OnCreate(Bundle savedInstanceState)
{
    // 先检查Firebase是否已初始化,没有则手动初始化
    if (Firebase.FirebaseApp.GetInstance(Android.App.Application.Context) == null)
    {
        Firebase.FirebaseApp.InitializeApp(Android.App.Application.Context);
    }

    base.OnCreate(savedInstanceState);
    // 你的其他原有代码...
}

2. 检查google-services.json配置

  • 确认google-services.json放在Android项目的Resources目录下,并且右键文件→属性,把Build Action改成GoogleServicesJson,这步是Xamarin识别配置文件的关键
  • 若不确定文件有效性,去Firebase控制台重新下载对应项目的配置文件替换

3. 清理重建项目

  • 右键Android项目→清理
  • 手动删除项目根目录下的bin和obj文件夹
  • 重启Visual Studio后重新构建部署

4. 统一Firebase NuGet包版本

打开NuGet包管理器,检查所有Firebase相关包(如Xamarin.Firebase.Core、Xamarin.Firebase.Iid)的版本是否一致,版本不兼容极易引发问题。可选择统一升级到最新兼容版,或换回Windows上可用的旧版本。

5. 核对Android目标框架

右键Android项目→属性→应用程序,查看目标框架版本,确保与Windows上的设置一致,或与Firebase包兼容(例如选择Android 12.0及以上版本)


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:35:15