修改Android模块minSdkVersion至26后清单合并报错,如何解决?
解决步骤及问题分析
问题根源
你修改了网络模块的minSdk为26并发布1.0.1版本,但该版本的AndroidManifest.xml中依然保留了初始的minSdkVersion=29,导致依赖它的项目(minSdk26)在Manifest合并时触发冲突。
具体解决操作
修正模块配置并同步
- 打开网络模块的
AndroidManifest.xml,检查是否存在硬编码的<uses-sdk android:minSdkVersion="29"/>,如果有,改为26或者直接删除该标签(让Gradle自动从defaultConfig生成对应配置)。 - 确认模块的
build.gradle(或build.gradle.kts)中defaultConfig.minSdk确实设置为26,然后点击Android Studio的Sync Now同步配置。
- 打开网络模块的
清理缓存并重新构建验证
- 执行Gradle清理命令,清除旧的构建缓存:
./gradlew clean # Windows系统使用 gradlew clean - 重新构建模块的Release版本:
./gradlew :你的网络模块名称:assembleRelease - 验证构建后的Manifest:前往模块的
build/intermediates/manifests/full/release/目录,打开生成的AndroidManifest.xml,确认minSdkVersion已改为26。
- 执行Gradle清理命令,清除旧的构建缓存:
重新发布正确版本
- 如果仓库中已存在错误的1.0.1版本,若有权限则直接删除该版本,再重新发布验证后的正确版本;若无法删除,则发布新的版本号(如1.0.2),并确保依赖项目切换到这个正确版本。
临时应急方案(不推荐)
- 若必须使用当前有问题的1.0.1版本,可在依赖项目的
AndroidManifest.xml中添加强制覆盖配置:
注意:此操作可能导致运行时崩溃,需全面测试模块所有功能在Android 8.0(API26)上的兼容性,确保未使用API29+的专属方法。<uses-sdk android:minSdkVersion="26" android:targetSdkVersion="33" tools:overrideLibrary="nst.android.network"/>
- 若必须使用当前有问题的1.0.1版本,可在依赖项目的
遗漏的步骤
之前发布1.0.1版本时,未验证构建输出的AndroidManifest.xml中minSdkVersion是否正确,也未清理旧的构建缓存,导致旧配置被打包进发布版本。
内容的提问来源于stack exchange,提问作者R0ck
相关产品推荐
相关产品推荐

