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

在Android Studio中如何为各product flavor配置不同的Manifest文件

Android多product flavor独立配置Manifest文件解决方案

适配说明

Android Gradle Plugin 7.0及以上版本调整了Manifest文件的默认校验规则,默认强制要求main sourceSet下存在AndroidManifest.xml,旧版直接在flavor对应目录放置Manifest、删除main目录Manifest的操作不再默认生效,需手动配置sourceSet修改Manifest搜索逻辑。

配置方法

方案1:完全移除main目录Manifest,各flavor使用独立Manifest

在app模块build.gradle的android代码块中添加如下sourceSet配置,原有其他配置(如flavorDimensions、productFlavors等)保持不变:

android {
    // 原有配置保持不变
    flavorDimensions "default"
    productFlavors{
        publicVersion{
            dimension "default"
        }
        privateVersion{
            dimension "default"
        }
    }

    // 新增Manifest路径配置
    sourceSets {
        main.manifest.srcFile 'src/main/AndroidManifest.xml'
        publicVersion.manifest.srcFile 'src/publicVersion/AndroidManifest.xml'
        privateVersion.manifest.srcFile 'src/privateVersion/AndroidManifest.xml'
    }
}

配置完成后执行以下操作生效:

  • 点击Android Studio右上角Sync Project with Gradle Files同步项目
  • 依次执行菜单栏Build -> Clean Project、Build -> Rebuild Project清除构建缓存

若同步后仍提示缺少Manifest文件,关闭Android Studio,删除项目根目录下的.gradle、.idea文件夹和app模块下的build文件夹,再重新打开项目触发同步即可解决缓存导致的配置不生效问题。

方案2:保留极简公共Manifest,自动合并差异化配置

保留main目录下的AndroidManifest.xml,仅写入所有flavor通用的配置(如应用基础权限、application节点公共属性),各flavor的Manifest仅写入差异化配置,AGP会自动合并两份Manifest的内容,该方案适配性更高,不易出现编译异常。

效果校验

打开任意flavor的AndroidManifest.xml,点击编辑器右上角的Merged Manifest标签,确认最终合并后的Manifest内容符合对应flavor的预期,无报错即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:54:01