如何解决应用中心错误?- "Default FirebaseApp is not initialized" For Xamarin.Android

问题描述 投票:0回答:1

我的Xamarin.Android应用程序在模拟器中运行得很好,但最近当用户在实际的Android设备上运行它时,却开始崩溃。

FirebaseInstanceId.get_Instance () Java.Lang.IllegalStateException: 默认的FirebaseApp没有在这个过程中初始化 "NameOfApp"。一定要先调用FirebaseApp.initializeApp(Context)。

有用户建议在我的MainActivty.cs文件中编辑我的OnCreate方法,添加这段代码。

Firebase.FirebaseApp.InitializeApp(this);

我已经这样做了,但我不想再推出一个坏的应用程序,请你告诉我这是否是解决这个错误的正确方法,或者是否有其他方法。

谢谢你的时间!

 protected override void OnCreate(Bundle savedInstanceState)
        {
        Firebase.FirebaseApp.InitializeApp(this);

        base.OnCreate(savedInstanceState);
        if (!Parameter.CheckInternet())
        {
            Intent intent = new Intent(Application.Context, typeof(NoInternetActivity));
            StartActivity(intent);
            return;
        }
        Helper.TrackEvent(Parameter.CategoryLoad, "home", "Main");

        if (Intent.Extras != null)
        {
            // If there is a Network error show message
            if (Intent.Extras.ContainsKey("NetworkError"))
            {
                Toast.MakeText(this, "Network Error, please try again", ToastLength.Short).Show();
            }
            else
            {
                // If there is a link from a notification launch the appropriate activity
                string linkType = Intent.GetStringExtra("LinkType");
                string linkPage = Intent.GetStringExtra("LinkPage");
                if (linkPage.Equals("main"))
                {
                    // Link is a main page
                    LaunchMainActivity(linkType);
                }
                else
                {
                    if (linkType.Equals("video"))
                    {
                        // Link is a Youtube video
                        Helper.LaunchVideo(this, linkPage);
                    }
                    else
                    {
                        // Link is a single page
                        LaunchSingleActivity(linkType, linkPage);
                    }
                }
                // Used this at some point to debug the extras but it's not necessary
                foreach (var key in Intent.Extras.KeySet())
                {
                    if (key != null)
                    {
                        var value = Intent.Extras.GetString(key);
                        Helper.TrackEvent("DEBUG", "extras", $"Key: {key} Value: {value}");
                    }
                }
            }
        }
android firebase xamarin mobile xamarin.android
1个回答
0
投票

根据AppCenter的官方文档,我的Xamarin.Android App运行得很好,但最近当用户在实际的Android设备上运行时,就开始崩溃。https:/docs.microsoft.comen-usxamarinandroiddata-cloudgoogle-messagingremote-notifications-with-fcm。

这是一个已知的问题,这是他们的建议。

"这是一个已知的问题,你可以通过清理解决方案和重建项目(Build > Clean Solution,Build > Rebuild Solution)来解决。"

我不建议添加你提到的那段代码。它不能保证你的应用能正常运行。


0
投票

谢谢你们的帮助,像下面这样手动配置Firebase解决了我的问题。

var options = new FirebaseOptions.Builder()
.SetApplicationId("<AppID>")
.SetApiKey("<ApiKey>")
.SetDatabaseUrl("<DBURl>")
.SetStorageBucket("<StorageBucket>")
.SetGcmSenderId("<SenderID>").Build();
var fapp = FirebaseApp.InitializeApp(this, options);
© www.soinside.com 2019 - 2024. All rights reserved.