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

标签 android gradle-kotlin-dsl 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在第二个街区,它也不起作用

最佳答案

解决方案是ignore = true有一点细节。
如果您保持在顶级 build.gradle.kts 中,则此方法有效这一行:classpath("com.android.tools.build:gradle:4.0.1")不仅限于buildSrc对此:implementation("com.android.tools.build:gradle:4.0.1")

关于android - 如何在 gradle kts 中排除(忽略)android 构建变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63635713/

相关文章:

Android - session Cookie

android - 在 android 中每天首次启动应用程序时显示警报

Gradle Kotlin DSL : Define Kotlin version in unique place

intellij-idea - gRPC UnsupportedAddressTypeException,但仅当与 shadowJar 打包时

android - 由于Android目标,Kotlin Multiplatform构建失败

maven - 如何从非build-gradle文件访问Kotlin DSL扩展?

android - 如何正确地将Android设备添加到Linux中进行设备调试?

android - Intent 过滤器中的这个类别是什么意思?