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

引入动态功能模块后Android Release构建Manifest合并失败

问题解答

1. Manifest合并工具判定包名重复的原因

Android Gradle Plugin(AGP)构建过程中,Manifest合并工具优先读取各模块build.gradle中声明的namespace作为模块的唯一包名标识,而非直接读取AndroidManifest.xml中定义的package属性。你当前的动态功能模块未在build.gradle中声明独立namespace,AGP会自动继承主模块:app的namespace值de.abc.someapp,合并工具检测到两个模块使用了相同包名,因此抛出冲突错误。

2. 问题根本原因

动态功能模块some_dynamic_feature的build.gradle配置中缺失独立的namespace声明:

  • AGP 7.0+版本已完全废弃AndroidManifest.xml中的package属性作为模块包名标识,仅以build.gradle中的namespace为准
  • 动态功能模块要求必须配置与主模块不同的独立namespace,未配置时默认继承主模块的namespace,触发Manifest合并的包名校验规则

3. 解决方案

在some_dynamic_feature模块的build.gradle的android配置块中添加namespace声明即可,参考配置如下:

android {
  compileSdkVersion Versions.AndroidSdk.compile
  // 新增namespace配置,值与你原Manifest中定义的package保持一致即可
  namespace "de.abc.someapp.dynamic"
  defaultConfig {
    minSdkVersion Versions.AndroidSdk.min
    targetSdkVersion Versions.AndroidSdk.target
  }
}

修改完成后执行clean再重新构建Release版本即可解决冲突。如果使用的是AGP 7.0以下版本,也可以同步删除AndroidManifest.xml中的package属性避免冗余配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:54:03