如何在 gradle kts 中排除(忽略)android 构建变体

How to exclude (ignore) android build variants in gradle kts

在将构建脚本从 groovy 迁移到 kotlin 的过程中,我遇到了排除构建变体的问题。

在 groovy 中非常简单:

android {
    variantFilter { variant ->
        if (variant.name == "lorempisum") {
            setIgnore(true)
        }
    }
}

但在 kotlin 中类似的事情不起作用。在 android studio 中似乎没问题,但在编译过程中会抛出 Unresolved reference: isIgnore

android {
    variantFilter {
        if (buildType.name == "lorempisum") {
            isIgnore = true
        }
    }
}

从另一端报告 Unresolved reference: setIgnore,但在编译期间有效

android {
    variantFilter {
        if (buildType.name == "lorempisum") {
            this.setIgnore(true)
        }
    }
}

有人知道如何以正确的方式做到这一点吗?

我正在使用 kotlin 1.3.72、android studio 4.0.1 和 gradle 6.5.1

---- 编辑 ----

我在第二个块中修复了示例 ignore -> isIgnore,它也不起作用

您应该先更新到最新版本的 android studio 和插件。 试试这个

variantFilter {
    this.ignore = name == "lorempisum"
}

灵魂 ignore = true 有点细节。

如果您保留 top-level build.gradle.kts 这一行,这将有效:

classpath("com.android.tools.build:gradle:4.0.1")

并不仅仅在 buildSrc 上:

implementation("com.android.tools.build:gradle:4.0.1")