Maui Blazor安卓编译报错求助:Windows正常,安卓遇APT200/APT2062错误
MAUI Blazor Android编译错误:APT200/APT2062与XA1036解决指南
一、解决APT200和APT2062资源链接错误
你的核心问题出在AndroidAapt2LinkExtraArgs的参数格式上:代码里写的--no-version -vectors是错误的,--no-version-vectors是一个完整的aapt2参数,中间不能加空格。这个空格导致aapt2把-vectors当成了单独的未知参数,直接触发了"expected reference but got (raw string)"和链接失败的错误。
修复步骤:
- 找到项目中包含这段配置的文件(可能是自定义.targets或项目.csproj)
- 修改参数为完整的
--no-version-vectors,修正后的代码片段:
<PropertyGroup> <AndroidAapt2LinkExtraArgs Condition=" $(AndroidResgenExtraArgs.Contains('--no-version-vectors')) And !($(AndroidAapt2LinkExtraArgs.Contains('--no-version-vectors'))) ">--no-version-vectors $(AndroidAapt2LinkExtraArgs) </AndroidAapt2LinkExtraArgs> </PropertyGroup>
- 右键项目选择清理,然后重新生成Android目标。
二、解决XA1036版本不匹配错误
修改minSdkVersion到25+时出现的XA1036,是因为AndroidManifest.xml里的minSdkVersion和项目文件的SupportedOSPlatformVersion数值不一致。
修复方法二选一:
- 方法1:统一两处版本值
- 打开项目.csproj文件,添加或修改
<SupportedOSPlatformVersion>节点,比如要设为29:
<PropertyGroup> <!-- 保留原有配置 --> <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">29.0</SupportedOSPlatformVersion> </PropertyGroup>- 打开
Properties/AndroidManifest.xml,确保<uses-sdk android:minSdkVersion="29" />和上面的版本一致。
- 打开项目.csproj文件,添加或修改
- 方法2:让项目配置自动接管版本
删除AndroidManifest.xml里的<uses-sdk>节点中android:minSdkVersion属性,完全由项目文件的SupportedOSPlatformVersion控制版本。
额外排查点
如果修复后仍有问题:
- 检查是否有其他自定义.targets文件修改了aapt2的参数配置
- 手动删除项目的
obj和bin目录,彻底清理后重新生成 - 确保Visual Studio 2022和Android SDK都更新到对应.NET版本的最新稳定版
内容的提问来源于stack exchange,提问作者D.P.
相关产品推荐
相关产品推荐

