如何在 gradle kts 中排除(忽略)android 构建变体
Posted
技术标签:
【中文标题】如何在 gradle kts 中排除(忽略)android 构建变体【英文标题】:How to exclude (ignore) android build variants in gradle kts 【发布时间】:2020-12-17 12:02:24 【问题描述】:在将构建脚本从 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在运行时使用不同的源代码完成和其他 【参考方案1】:Soultion 是 ignore = true
,有一点细节。
如果您保持***build.gradle.kts
这一行,这将有效:
classpath("com.android.tools.build:gradle:4.0.1")
不仅限于buildSrc
:
implementation("com.android.tools.build:gradle:4.0.1")
【讨论】:
【参考方案2】:您应该首先更新到最新版本的 android studio 和插件。 试试这个
variantFilter
this.ignore = name == "lorempisum"
【讨论】:
在 IDE 中使用这个this.ignore
似乎是正确的,但是在编译过程中,它再次抛出Unresolved reference: ignore
。我正在使用最新的稳定版 android studio 4.0.1,它不适用于 gradle 6.5.1 和 6.6.1
好的。我在 android studio 4.1.0 RC2 和 gradle 6.5 上。这个 gradle Kotlin DSL 在 4.1 或 4.2 上得到更好的支持。以上是关于如何在 gradle kts 中排除(忽略)android 构建变体的主要内容,如果未能解决你的问题,请参考以下文章
如何在 build.gradle.kts 中设置 openApi 生成器全局属性
如何在 android gradle.kts 中定义自定义源集?
如何使用 kotlinscript DSL (build.gradle.kts) 通过 url 添加 maven 存储库
如何在 android studio 中将 .aar 文件添加到 gradle.kts?