模拟器在 Xamarin Forms 上显示空白屏幕问题

Emulator show empty white screen problem on Xamarin Forms

我正在测试我用 android 模拟器所做的事情,它一直运行良好,但昨天它突然将我的应用程序显示为纯白色的空白屏幕。我不知道为什么。 这是我的 MainActivity class

    using System;

using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Xamarin.Forms;

namespace HealthCareApp.Droid
{
    [Activity(Label = "HealthCareApp", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize )]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;
            
            base.OnCreate(savedInstanceState);
            Forms.SetFlags("Brush_Experimental");
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            LoadApplication(new Xamarin.Forms.Application());
        }
        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
            
            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }
}

App.xaml.cs(现在它给出一个错误:“initializecomponent is unaccessible due to its protection level”)

    using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace HealthCareApp
{
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();
            MainPage = new NavigationPage(new LoginPage());
        }

        protected override void OnStart()
        {
        }

        protected override void OnSleep()
        {
        }

        protected override void OnResume()
        {
        }
    }
}

您的项目中应该有一个 App class,其中包含有关首先显示哪个表单页面的信息以及在 IoC 容器中设置诸如服务等内容的信息。

而不是调用

LoadApplication(new Xamarin.Forms.Application());

你应该打电话给:

LoadApplication(new App());