C# .net9 Avalonia Android 开发环境搭建 demo运行
0 新建项目



1 搭建环境
安装环境
如何搭建Android开发环境 | Avalonia Docs
Setting up the Android SDK for Xamarin.Android - Xamarin | Microsoft Learn
安装xamarin环境













修改.net9



修改目录下的文件指定 avalonia版本11.3.3

3 使用avalonia Prism.DryIoc.Avalonia 框架
nuget 安装Prism.DryIoc.Avalonia

using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Data.Core.Plugins;
using Avalonia.Markup.Xaml;
using MyGoldTest.ViewModels;
using MyGoldTest.Views;
using System;
using Prism.DryIoc;
using Prism.Ioc;
using Prism.Modularity;
namespace MyGoldTest;
public partial class App : PrismApplication
{
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
base.Initialize(); // Required to initialize Prism.Avalonia - DO NOT REMOVE
}
public override void OnFrameworkInitializationCompleted()
{
// Line below is needed to remove Avalonia data validation.
// Without this line you will get duplicate validations from both Avalonia and CT
BindingPlugins.DataValidators.RemoveAt(0);
// if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
// {
// desktop.MainWindow = new MainWindow
// {
// DataContext = new MainWindowViewModel()
// };
// }
// else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform)
// {
// singleViewPlatform.MainView = new HomeView()
// {
// DataContext = new HomeViewViewModel()
// };
// }
base.OnFrameworkInitializationCompleted();
}
protected override AvaloniaObject CreateShell()
{
GlobalCls.Container = Container;
if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform)
{
//安卓不能使用Window,使用usercontrol
return Container.Resolve<HomeView>();
}
return Container.Resolve<MainWindow>();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
// Add Services and ViewModel registrations here
Console.WriteLine("RegisterTypes()");
// Services
//// containerRegistry.RegisterSingleton<ISampleService, ISampleService>();
// Views - Region Navigation
//// containerRegistry.RegisterForNavigation<DashboardView, DashboardViewModel>();
// Dialogs
//// containerRegistry.RegisterDialog<MessageBoxView, MessageBoxViewModel>();
//// containerRegistry.RegisterDialogWindow<CustomDialogWindow>(nameof(CustomDialogWindow));
///
containerRegistry.RegisterForNavigation<FooterView,FooterViewViewModel>();
containerRegistry.RegisterForNavigation<HeaderView,HeaderViewViewModel>();
containerRegistry.RegisterForNavigation<BodyView,BodyViewViewModel>();
containerRegistry.RegisterForNavigation<HomeView,HomeViewViewModel>();
containerRegistry.RegisterForNavigation<Page1View,Page1ViewViewModel>();
containerRegistry.RegisterForNavigation<Page2View,Page2ViewViewModel>();
containerRegistry.RegisterForNavigation<Page3View,Page3ViewViewModel>();
containerRegistry.RegisterForNavigation<Page4View,Page4ViewViewModel>();
}
protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
{
// Register modules
//// moduleCatalog.AddModule<DummyModule.DummyModule1>();
}
}
4 运行效果




5 禁用启动动画

<!-- 添加这行来禁用启动画面 -->
<item name="android:windowDisablePreview">true</item>

浙公网安备 33010602011771号