【问题标题】:Android project with multiple manifests具有多个清单的 Android 项目
【发布时间】:2019-12-25 07:59:50
【问题描述】:

我有一个 android studio 项目,其中包含不同的文件夹,具体取决于项目的构建方式。

我使用的文件结构如下:

src/main/AndroidManifest.xml
        /java
        /res
src/FOO/AndroidManifest.xml
        /java
        /res

所有的配置都是通过gradle完成的:

java.srcDirs += <src/FOO/java>

问题在于,除了主清单之外,我不确定如何使用位于 FOO 目录中的清单。

这可以使用清单合并来完成吗?或者这不是预期的用途? 还是清单合并只在主清单所在目录下寻找清单?

我相信清单合并不知道 src/FOO/AndroidManifest.xml 中的清单。

【问题讨论】:

    标签: android android-studio android-gradle-plugin android-manifest


    【解决方案1】:

    您描述的不同路径应对应于不同的构建变体(风味 + 构建类型组合)。在每个构建变体目录中,您可以包含一个不同的 AndroidManifest.xml 文件,该文件将与主文件夹中的文件合并。新的(未知的)条目将简单地附加到主 AndroidManifest。当您在不同的文件夹中有“冲突”的条目时,棘手的部分就来了。我建议您查看清单合并的文档,可以找到here。它非常易于解释,并且还包含指向 Android Studio 的 Merged Manifest 视图工具的链接以及如何使用它。

    【讨论】:

    • 感谢您的回复。我认为我的问题来自我正在使用的文件结构。将用更多信息更新我的问题
    • 请记住,将为您正在执行构建的相应构建变体启用清单合并。这也意味着您需要正确配置 build.gradle 以包含必要的产品风味(在本例中为 FOO 产品风味)
    • 我的理解是一次只能构建一种风味。不可能将两种口味整合到一个版本中,是吗?
    • 你可以一次构建多种风格(只需在 Gradle 命令行中提供适当的参数)。清单合并将查看在风味和构建类型(调试/发布)中找到的条目,并将它们应用到主 Android 清单。生成的清单将用于输出(例如 apk)。
    • 如果你能分享更多细节,比如 build.gradle 配置和 AndroidManifest 文件不起作用,也许我们可以解决这个问题
    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多