Xamarin FirebaseApp.InitializeApp(this) returns 60.1142.1 中为空

Xamarin FirebaseApp.InitializeApp(this) returns null in 60.1142.1

我查看了网上关于此错误的所有问题。它似乎在 < 42.1021.1 的版本中非常常见。但是我有最新的版本,错误仍然存​​在。

我已经添加了 google-services.json 并选择了适当的构建操作。我尝试过清理和重建但没有成功。我还尝试了其他版本中的错误解决方法,例如在 csproj 文件中添加 Target 标记。我试过从 json.

手动输入字符串

无论我调用 FirebaseApp.InitializeApp(this) returns null 并且当我尝试引用 FirebaseInstanceId.Instance.Token 时,我都会遇到非常常见的异常:

Java.Lang.IllegalStateException:默认的FirebaseApp没有在这个过程中初始化 确保先调用 FirebaseApp.initializeApp(Context)。

Github 和 Xamarin 论坛说这是用 60.1141.1 修复的,但从来没有。我还检查了我的 csproj 以确保对 GoogleServices 的所有引用都是最新版本。

我不知道为什么这行不通,我真的很快就需要它来工作。如果可以请帮忙。

我查看了以下资源但没有成功: https://docs.microsoft.com/en-us/xamarin/android/data-cloud/google-messaging/remote-notifications-with-fcm?tabs=vswin https://bugzilla.xamarin.com/show_bug.cgi?id=56108#c1 https://forums.xamarin.com/discussion/94464/firebase-cloud-messaging-app-not-initialized Xamarin.android Default FirebaseApp is not initialized in this process

还有更多我找不到的。为什么这个版本还出现这个bug????

我发现了我的问题!在创建了一个只包含 Firebase 初始化的虚拟项目后,它运行良好(使用相同的 google-services.json)。这能够很好地初始化。

比较项目后,我注意到以前的开发人员在名称 "app_name" 下的字符串中定义了应用程序名称。一旦我在 "ApplicationName" 下创建了另一个字符串并将其与我的启动 activity 中的标签和我能够初始化的清单应用程序标签相匹配。

此外,我的启动 activity 继承了 AppCompatActivity 而不是 Activity。在找到上述解决方案之前,我创建了一个继承 activity 的初始页面,这是我初始化 Firebase 的地方。不确定这是否是解决方案所必需的。

我遇到了同样的问题,经过一番调查后,我尝试以这种方式在 OnCreate 方法中手动启动它

var options = new FirebaseOptions.Builder()
  .SetApplicationId("<AppID>")
  .SetApiKey("<APIKey>")
  .SetDatabaseUrl("https://<url>.firebaseio.com")
  .SetStorageBucket("*.appspot.com")
  .SetGcmSenderId("<senderID").Build();
  var fapp = FirebaseApp.InitializeApp(this, options);

  LoadApplication(App);

  PushNotificationManager.ProcessIntent(this, Intent);

这对我有用,构建过程 "GoogleServiceJson" 似乎不起作用,应该由它来代替。 最好的祝福, 托马斯

在我的问题中,包名称不同。检查 AndroidManifest.xml 中的包名是否与 google-services.json.

中的相同