迁移Xamarin至MAUI时找不到Android.App命名空间及等效Context问题
报错根因
你触发CS0234错误不是因为MAUI修改了Android.App.Application.Context的命名空间,而是你将代码放在Platforms/Android路径下时,编译器会优先匹配你项目自身的AAT.Platforms.Android命名空间,把代码里的Android.App解析为你项目下的子命名空间,而非Android SDK的原生命名空间。
可用解决方式
- 加命名空间别名规避冲突:在DatabaseHelper类文件顶部添加别名引用
后续获取上下文直接调用using NativeAndroid = Android.App;NativeAndroid.Application.Context即可,不会再触发命名空间解析错误。 - 直接使用MAUI官方封装的上下文入口,不需要引用原生Android命名空间:
// Platforms/Android目录下可直接调用 var context = Microsoft.Maui.ApplicationModel.Platform.CurrentActivity.ApplicationContext; - 调整Platforms目录下代码的命名空间规则,避免和系统SDK命名空间重合:比如将Helpers目录下类的命名空间从
AAT.Platforms.Android.Helpers调整为AAT.DroidHelpers,从根源上消除命名空间匹配歧义。
提示:MAUI兼容绝大多数Xamarin.Android的原生API,
Android.App.Application.Context本身在MAUI中没有变更命名空间,只要解决本地项目和系统SDK的命名空间冲突,原有Xamarin的写法可以直接复用。
内容的提问来源于stack exchange,提问作者Higor Pereira
相关产品推荐
相关产品推荐

