Lifecycle Android插件gradle

时间:2015-07-13 10:07:07

标签: android gradle android-gradle

我正在寻找一种动态包含风味的方法

为此,我尝试包含具有属性的子项目来配置主Android项目。 这是我的例子:

app
|-> src
|    |-> flavor
|           |-> build.gradle
|-> build.gradle
|-> settings.gradle

应用程序/ settings.gradle

include ':src:flavor'

应用程序/ SRC /香料/的build.gradle

ext {
    isFlavor = true
}

应用程序/的build.gradle

...

android {

    ...

    productFlavors {

        getAllprojects().each { project ->
            if (project.ext.has("isFlavor")) {
                def name = project.getName()
                "$name" {
                    applicationId "com.example.app.$name"
                }
            }
        }
    }

}

这看起来很神奇......但它不起作用! 因为Android是在gradle检查之前配置的,所以子项目和flavor.ext.isFlavor尚不存在。 如果我使用配置注入,Android吐在我的脸上,我不敢!

Android tasks have already been created

我已经阅读了stackoverflow,我必须在我的rootProject中创建我的属性并在每个子项目中配置Android。

但在我看来,子项目不是项目,而是风味..

有没有人有想法在子项目中配置属性并在rootProject中使用它们?

我现在在apply from:功能附近搜索..

P.S:这是我的另一个解决方案的主线程:Gradle dynamic flavor

1 个答案:

答案 0 :(得分:0)

我刚使用条件和apply from:强制生命周期应用我的值:

if (new File(project(":app").getProjectDir().getPath() + "/flavors.gradle").exists()) {
    apply from: "flavors.gradle"
}