如何在 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")
在将构建脚本从 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")