添加Xamarin.AndroidX.AppCompat.Resources后TabbedPageRenderer报错求解决
统一AndroidX包版本
这类错误大多源于AndroidX系列NuGet包版本不兼容。打开项目的NuGet包管理器,检查所有Xamarin.AndroidX.开头的包(如Xamarin.AndroidX.AppCompat、Xamarin.AndroidX.AppCompat.Resources、Xamarin.AndroidX.Core等),将它们全部更新到相同的稳定版本,避免混合不同版本的包。自定义TabbedPageRenderer并重写缺失方法
若默认渲染器存在兼容性问题,可自行实现一个自定义渲染器,继承原TabbedPageRenderer并强制重写缺失的OnNavigationItemSelected方法。示例代码如下(放置在Android项目中):using Android.Content; using Android.Support.Design.Widget; using Android.Views; using Xamarin.Forms; using Xamarin.Forms.Platform.Android; [assembly: ExportRenderer(typeof(TabbedPage), typeof(CustomTabbedPageRenderer))] namespace YourApp.Droid.Renderers { public class CustomTabbedPageRenderer : TabbedPageRenderer { public CustomTabbedPageRenderer(Context context) : base(context) { } public override bool OnNavigationItemSelected(IMenuItem item) { // 保留默认逻辑或自定义处理 return base.OnNavigationItemSelected(item); } } }注意替换
YourApp.Droid.Renderers为你项目的实际命名空间。清理缓存并重建项目
右键解决方案选择「清理」,手动删除项目目录下的bin和obj文件夹,之后重新构建解决方案。同时可重启Visual Studio,避免缓存文件引发的异常。降级AppCompat.Resources版本
若最新版本的Xamarin.AndroidX.AppCompat.Resources与当前Xamarin.Forms版本不兼容,可尝试降级到与Xamarin.Forms依赖的Xamarin.AndroidX.AppCompat匹配的版本。查看Xamarin.Forms的依赖详情,找到对应的AppCompat版本后,安装同版本的AppCompat.Resources包。
内容的提问来源于stack exchange,提问作者OttherCreek

