VS2019构建旧Xamarin.Forms项目报Xamarin.Android.Wearable错误如何解决
修复方案
这个报错的核心原因是项目引用的Xamarin.Android.Wearable程序集版本过旧,使用了新版Xamarin.Android构建链已经完全废弃的两个程序集特性:Android.IncludeAndroidResourcesFromAttribute和Java.Interop.JavaLibraryReferenceAttribute。常规点NuGet更新、修改目标框架不生效,大多是旧包引用残留、间接依赖锁版本导致的,按以下步骤操作即可修复:
1. 清理所有旧包缓存和编译残留
- 右键报错的AMR.Android项目,选择「管理NuGet程序包」,在已安装列表中找到
Xamarin.Android.Wearable直接卸载;如果已安装列表找不到该包,说明它是其他依赖包间接引入的,跳过这步即可。 - 关闭Visual Studio 2019,打开解决方案所在文件夹,删除所有项目子目录下的
bin、obj文件夹,重点清理Android项目目录下的这两个文件夹。 - 删除解决方案根目录下的
packages文件夹,旧版packages.config格式的NuGet会把所有包缓存存在这个目录下,容易残留旧版本文件。
2. 安装兼容版本的依赖包
- 重新打开VS2019加载解决方案,不要先执行构建。
- 给AMR.Android项目安装2.1.1及以上稳定版本的
Xamarin.Android.Wearable包,不要选择预发布版本。如果项目本身没有可穿戴设备相关功能,只是其他依赖间接引入了这个包,安装兼容版本覆盖旧引用即可。
如果安装时提示版本冲突,找到强制依赖旧版Wearable包的上层依赖(常见为旧版Xamarin.GooglePlayServices.Wearable、旧版Android Wear支持库),将该上层依赖同步更新到兼容版本即可解决冲突。
3. 校验项目配置避免硬编码旧引用
- 右键AMR.Android项目打开「属性」面板,在「应用程序」选项卡中确认目标Android框架版本设置为Android 10.0 (API 29)及以上,最低支持版本可根据项目实际需求设置,无特殊要求不低于API 21即可。
- 右键AMR.Android项目选择「编辑项目文件」,检查csproj内容中是否存在硬编码的旧版本
Xamarin.Android.Wearable引用(例如带旧版本号的<Reference Include="Xamarin.Android.Wearable, Version=1.x.x.x...">节点),找到后直接删除整段引用配置,保存文件。 - 执行重新生成解决方案操作,报错即可消除。
特殊场景兜底处理
如果以上操作完成后仍然报相同错误,打开Visual Studio Installer,选择修改VS2019安装配置,在「单个组件」列表中确认已安装的Xamarin.Android组件版本为10.0及以上稳定版,避免VS自带构建链版本和NuGet包版本跨度过大导致的兼容问题。
内容的提问来源于stack exchange,提问作者Arvind Chourasiya
相关产品推荐
相关产品推荐

