You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Android SDK版本设置异常:TargetSDK莫名变为28的解决办法

解决.NET Android TargetSDK版本被强制设为28的异常问题

排查步骤与解决方案

1. 检查多环境Manifest文件

  • 确认项目中是否存在环境专属的AndroidManifest.xml(比如Properties/AndroidManifest.xml之外,还有Properties/AndroidManifest.Release.xml或AndroidManifest.Debug.xml),这类文件会在对应构建配置下覆盖主Manifest的设置。
  • 打开所有Manifest文件,搜索android:targetSdkVersion,排查是否有地方默认设置为28。

2. 彻底清理项目缓存

旧构建缓存常残留无效配置,按以下操作清理:

  • 关闭当前IDE(Visual Studio等)
  • 删除项目根目录下的bin和obj文件夹
  • 执行命令行清理:
    dotnet clean
    
  • 重新打开项目并完整重建

3. 检查csproj的条件性配置

打开项目的.csproj文件,查看是否存在针对Release构建的单独配置块,比如:

<PropertyGroup Condition="'$(Configuration)'=='Release'">
  <!-- 这里可能隐藏了覆盖版本的配置 -->
  <AndroidTargetSdkVersion>28</AndroidTargetSdkVersion>
</PropertyGroup>

如果存在,将版本修改为34或直接删除该配置块。

4. 查看Manifest合并日志

.NET Android会合并主项目、第三方Nu包等所有来源的Manifest,可通过日志定位问题来源:

  • 在Visual Studio中,打开工具 > 选项 > 项目和解决方案 > 构建并运行,将MSBuild构建日志详细级别设为详细
  • 重新构建项目,在输出窗口搜索targetSdkVersion,查看合并过程中哪个Manifest文件引入了28的配置
  • 如果是第三方Nu包导致,优先升级该Nu包;若无法升级,可在主Manifest中强制覆盖:
    先引入tools命名空间,再在uses-sdk标签添加强制覆盖属性:
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools">
      <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="34" tools:overrideLibrary="com.example.thirdpartylib"/>
    </manifest>
    

5. 强制指定TargetSDK版本

在.csproj中添加以下配置,强制让MSBuild忽略Manifest冲突,使用指定版本:

<PropertyGroup>
  <AndroidTargetSdkVersion>34</AndroidTargetSdkVersion>
  <AndroidManifestMerger>ManifestMerger</AndroidManifestMerger>
</PropertyGroup>

内容的提问来源于stack exchange,提问作者Movsar Bekaev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:34:50