如何消除Xamarin.Android项目的_GetPrimaryCpuAbi构建警告?
解决Xamarin.Android构建警告"One or more errors occurred."的方案
针对你遇到的这个来自_GetPrimaryCpuAbi目标的模糊警告,我整理了几个实战中有效的排查和解决步骤,你可以逐个尝试:
清理重建+手动删除缓存文件夹
这是解决大多数奇怪构建问题的第一步,VS自带的清理有时候会残留无效缓存:- 右键解决方案 → 清理解决方案
- 右键解决方案 → 重建解决方案
- 关闭VS,手动删除项目目录下的
bin和obj文件夹,再重新打开VS构建
检查Xamarin与Android SDK版本兼容性
这个警告来自Xamarin.Android的MSBuild目标文件,很大概率是版本不匹配导致的:- 打开VS的「工具」→「Android」→「Android SDK管理器」,确认
SDK Build Tools和SDK Platform的版本和你当前使用的Xamarin.Android版本匹配(比如Xamarin.Android 10.0对应SDK Build Tools 29.x) - 去「工具」→「扩展和更新」,检查Xamarin是否有稳定版更新,更新到最新稳定版后再试
- 打开VS的「工具」→「Android」→「Android SDK管理器」,确认
排查NuGet包问题(你推测的方向很可能正确)
既然是更新NuGet后出现的,那就针对性排查:- 右键项目→「管理NuGet程序包」,查看「更新」标签里最近更新的包,逐个回退到更新前的版本,每次回退后构建项目,找到触发警告的那个包
- 检查所有NuGet包的目标框架是否和你的Android项目一致,比如你的项目是Android 9.0,避免使用只支持到Android 7.0或者要求更高版本的包
手动检查项目配置文件
有时候项目文件里的配置会出现异常:- 卸载项目,右键选择「编辑.csproj文件」
- 查找
<AndroidSupportedAbis>节点,确保里面的ABI值都是有效的(比如armeabi-v7a、arm64-v8a、x86),没有拼写错误或者重复项 - 确认
<AndroidSdkBuildToolsVersion>的值和SDK管理器里安装的Build Tools版本完全一致
重置Xamarin的MSBuild缓存
关闭VS后,删除以下目录的缓存文件:%LOCALAPPDATA%\Xamarin\zips%LOCALAPPDATA%\Microsoft\MSBuild\Xamarin
之后重新打开VS加载项目构建
检查CPU ABI设置
打开项目属性→「Android选项」→「高级」,确认勾选的ABI是你当前测试设备/模拟器支持的,不要勾选不兼容的ABI(比如模拟器选x86,真机选armeabi-v7a/arm64-v8a)
如果以上步骤都试过还是不行,可以尝试创建一个新的空白Xamarin.Android项目,逐步迁移你的代码和NuGet包,看什么时候警告出现,这样能更精准定位问题。
内容的提问来源于stack exchange,提问作者xMRi
相关产品推荐
相关产品推荐

