在.NET MAUI(VS 2022)中如何指定非34的Android目标版本?
解决MAUI + VS2022 Android目标版本不显示及编译错误问题
一、为什么下拉选项仅显示API 34?
- 确认SDK安装完整性:打开VS的「工具」→「Android」→「Android SDK管理器」,切换到「SDK平台」标签,检查你需要的版本(比如31)是否已勾选安装SDK Platform和对应系统镜像,仅安装平台工具不会让版本出现在下拉列表中。
- MAUI目标框架与Android API绑定:.NET版本和Android API存在对应关系,比如.NET 8默认对应Android 34。若要使用更低版本,需手动修改项目文件(.csproj)的
<TargetFramework>节点,格式为netX.X-androidYY(YY为API级别)。例如要选API 31,就改成<TargetFramework>net8.0-android31</TargetFramework>,修改后重新加载项目,下拉列表就会显示对应版本。
二、修复手动修改AndroidManifest.xml后的编译错误
MAUI项目优先读取项目文件配置,手动修改Manifest会导致配置冲突,按以下方式修复:
- 解决XA1036错误:
- 要么把
AndroidManifest.xml里的minSdkVersion改成和项目文件中SupportedOSPlatformVersion一致的值(当前为21); - 要么在项目文件中添加/修改
<SupportedOSPlatformVersion>26</SupportedOSPlatformVersion>,同时删除Manifest里的minSdkVersion配置。
- 要么把
- 解决XA4211警告:
- 不要手动修改Manifest里的
targetSdkVersion,直接在项目文件中添加<AndroidTargetSdkVersion>31</AndroidTargetSdkVersion>,并确保<TargetFramework>的Android版本不低于这个值(比如用net8.0-android31)。
- 不要手动修改Manifest里的
- 重新开启「在构建期间将项目属性转换为程序集特性」选项:这个选项是MAUI同步项目配置到Manifest的关键,关闭会导致配置不一致。
正确修改Android版本的推荐步骤
- 打开项目「属性」→「Android」→「应用程序」,若下拉无目标版本,先按上述方法修改项目文件的
<TargetFramework>; - 在「最低Android版本」和「目标Android版本」下拉列表中选择对应版本,VS会自动同步到项目文件和Manifest,避免手动修改的冲突。
内容的提问来源于stack exchange,提问作者user11500484
相关产品推荐
相关产品推荐

