我的项目结构包含一个基本功能模块,一个已安装的应用程序模块(具有免费和付费风格)和一个即时应用程序模块(只有一种风格 - 免费)。看起来即时应用程序的软件包名称来自基本功能模块的清单。
为什么即时应用的build.gradle中的applicationId字段不会覆盖清单中的包字段,就像它对已安装的应用程序一样?
中也观察到相同的行为答案 0 :(得分:6)
基本功能模块需要在其依赖项中具有对应用程序模块的application
引用。这允许基本功能从应用程序模块中提取applicationId
,而不是使用其AndroidManifest.xml
中定义的那个。
例如,您的基本功能build.gradle
将如下所示:
dependencies {
feature project(':feature1')
feature project(':feature2')
application project(':app')
...
}
根据documentation,这将构建所有口味(付费和免费)并为每个口味提供applicationId
。