android - 生命周期 Android 插件 gradle

标签 android gradle android-gradle-plugin

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

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

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

应用程序/settings.gradle
include ':src:flavor'

应用程序/src/flavor/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"
                }
            }
        }
    }

}

这看起来很神奇..但它不起作用!
因为在 gradle 检查子项目之前配置了 Android,并且 flavor.ext.isFlavor 还不存在。
如果我使用配置注入(inject),Android 会吐我不敢的口水!
Android tasks have already been created

我在 stackoverflow 上读到我必须在我的 rootProject 中创建我的属性并在每个子项目中配置 Android。

但在我的情况下,子项目不是项目而是口味..

有谁知道在子项目中配置属性并在 rootProject 中使用它们?

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

P.S:这是我的主线程和其他解决方案:Gradle dynamic flavor

最佳答案

我只是使用了条件和apply from:强制生命周期应用我的值(value)观:

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

关于android - 生命周期 Android 插件 gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31380498/

相关文章:

android - 如何将应用栏布局的内容水平对齐

java - Android 基础数学不及格

android - 禁用即时运行时,Gradle 构建失败并显示 "Could not read path"

android - 如何在 Android 中使用 Firebase?

java - ERROR : Unable to start the daemon process. 此问题可能是由于守护程序配置不正确造成的

gradle - 构建React Native Android应用导致错误 “Cannot add task […] as a task with that name already exists.”

安卓喷气背包 : RecyclerView is not updating when LiveData is set

android - com.google.android.gms.common.api.ApiException : 16:

java - 错误 : java. util.concurrent.ExecutionException : com. android.builder.internal.aapt.v2.Aapt2Exception: 在 Windows 10 上编译时出现 AAPT2 错误

android - Gradle 错误 : unable to open zip file