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

修改Android模块minSdkVersion至26后清单合并报错,如何解决?

解决步骤及问题分析

问题根源

你修改了网络模块的minSdk为26并发布1.0.1版本,但该版本的AndroidManifest.xml中依然保留了初始的minSdkVersion=29,导致依赖它的项目(minSdk26)在Manifest合并时触发冲突。

具体解决操作

  1. 修正模块配置并同步

    • 打开网络模块的AndroidManifest.xml,检查是否存在硬编码的<uses-sdk android:minSdkVersion="29"/>,如果有,改为26或者直接删除该标签(让Gradle自动从defaultConfig生成对应配置)。
    • 确认模块的build.gradle(或build.gradle.kts)中defaultConfig.minSdk确实设置为26,然后点击Android Studio的Sync Now同步配置。
  2. 清理缓存并重新构建验证

    • 执行Gradle清理命令,清除旧的构建缓存:
      ./gradlew clean  # Windows系统使用 gradlew clean
      
    • 重新构建模块的Release版本:
      ./gradlew :你的网络模块名称:assembleRelease
      
    • 验证构建后的Manifest:前往模块的build/intermediates/manifests/full/release/目录,打开生成的AndroidManifest.xml,确认minSdkVersion已改为26。
  3. 重新发布正确版本

    • 如果仓库中已存在错误的1.0.1版本,若有权限则直接删除该版本,再重新发布验证后的正确版本;若无法删除,则发布新的版本号(如1.0.2),并确保依赖项目切换到这个正确版本。
  4. 临时应急方案(不推荐)

    • 若必须使用当前有问题的1.0.1版本,可在依赖项目的AndroidManifest.xml中添加强制覆盖配置:
      <uses-sdk
          android:minSdkVersion="26"
          android:targetSdkVersion="33"
          tools:overrideLibrary="nst.android.network"/>
      
      注意:此操作可能导致运行时崩溃,需全面测试模块所有功能在Android 8.0(API26)上的兼容性,确保未使用API29+的专属方法。

遗漏的步骤

之前发布1.0.1版本时,未验证构建输出的AndroidManifest.xml中minSdkVersion是否正确,也未清理旧的构建缓存,导致旧配置被打包进发布版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:01:57