有条件地在 Android 清单文件中包含元数据

Joh*_*lly 5 android gradle

有没有办法meta-data根据 Gradle 中设置的值有条件地在 Android 清单文件中包含元素。我能够执行以下操作(resValue用于设置<some_value>in build.gradle),但无法找到包含/排除完整meta-data元素的方法。

    <meta-data
        android:name="<some_setting>"
        android:value="@string/<some_value>" />
Run Code Online (Sandbox Code Playgroud)

Joh*_*lly 1

有点黑客,但我能够解决这个问题的唯一方法是通过以下内容(在示例中更改了名称)build.gradle(我也在具有不同构建风格的上下文中使用它,但不依赖于此) ...我认为可能有一些额外的智能可以围绕清单合并来完成,这也将使这变得更干净。 myFlag来自我作为脚本project.hasProperty()一部分传递的值Fastlane

        sourceSets {
            flavor1 {
                if (myFlag == "true") {
                    manifest.srcFile "src/flavor1_flag/AndroidManifest.xml"
                } else {
                    manifest.srcFile "src/flavor1/AndroidManifest.xml"
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)