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

多Flavor场景下,如何让Android Studio不查找main目录的AndroidManifest.xml?

解决Android Gradle多风味无main目录Manifest的报错问题

Android Gradle插件默认会强制查找src/main/AndroidManifest.xml作为基础清单文件,哪怕你为每个风味单独配置了专属Manifest。要解决这个报错,你可以通过配置sourceSets来覆盖默认的Manifest查找规则:

  1. 打开app/build.gradle(若使用KTS则对应app/build.gradle.kts,语法需稍作调整),在android代码块中添加sourceSets配置:
android {
    // 保留你原有的compileSdk、defaultConfig、productFlavors等配置

    sourceSets {
        // 清空main源集的Manifest配置,阻止插件查找main目录下的清单文件
        main {
            manifest.srcFile = null
        }
        // 明确指定每个风味的Manifest路径
        flavor1 {
            manifest.srcFile 'src/flavor1/AndroidManifest.xml'
        }
        flavor2 {
            manifest.srcFile 'src/flavor2/AndroidManifest.xml'
        }
    }
}
  1. 确保每个风味的Manifest包含完整必要配置:因为不再有main目录的Manifest作为基础合并,每个风味的清单文件需要独立包含application标签、必要权限、组件声明等全部内容。

  2. 同步Gradle:点击Android Studio右上角的"Sync Project with Gradle Files"按钮,等待同步完成后报错即可消失。

如果你的项目中main目录下也没有其他资源(比如res、Java代码),也可以在sourceSets.main中进一步清空这些配置,避免插件额外查找:

main {
    manifest.srcFile = null
    java.srcDirs = []
    res.srcDirs = []
    assets.srcDirs = []
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 11:12:13