MAUI.NET安卓端启动报错:未注册Microsoft.Maui.IApplication服务
确认
MauiProgram.CreateMauiApp方法中是否正确调用了builder.UseMauiApp<App>(),这是MAUI注册IApplication服务的核心步骤,若遗漏或泛型参数指定错误(如App类命名空间不正确),会直接导致服务未注册。检查
App类的实现:确保App继承自Microsoft.Maui.Controls.Application,且构造函数中正确调用InitializeComponent(),避免在构造逻辑中执行可能破坏服务初始化的操作。验证
Platforms/Android/MainApplication.cs的正确性:确保MainApplication继承自MauiApplication,并正确重写CreateMauiApp方法返回MauiProgram.CreateMauiApp(),示例代码如下:public class MainApplication : MauiApplication { public MainApplication(IntPtr handle, JniHandleOwnership ownership) : base(handle, ownership) { } protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); }清理项目缓存并重建:删除项目根目录下的
bin、obj文件夹,执行dotnet clean命令清理解决方案,再通过dotnet build -t:Install -f net6.0-android重新编译部署,排除旧缓存文件导致的异常。检查.NET MAUI SDK版本:确认使用的.NET MAUI SDK(对应.NET 6)是否为最新稳定版,部分旧版本SDK存在Android 11环境下的服务注册兼容问题,升级至对应版本的最新补丁版可解决此类问题。
核对
AndroidManifest.xml配置:确保application节点的android:name属性正确指向MainApplication类,若类存在自定义命名空间,需填写完整的命名路径(如com.yournamespace.MainApplication)。排查自定义服务注册冲突:若在
MauiProgram中注册了自定义服务,需确保builder.UseMauiApp<App>()的调用顺序优先于其他服务注册,避免自定义服务覆盖或干扰MAUI内部服务的注册流程。
内容的提问来源于stack exchange,提问作者jaydopartu

