Search code examples
androidgradle-kotlin-dslgradle-kts

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


During migration build script from groovy to kotlin I met problem with excluding build variants.

In groovy it's pretty easy:

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

but in kotlin similar thing does not work. It seems to be ok in android studio, but during compilation it throws Unresolved reference: isIgnore

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

from the other side this reports Unresolved reference: setIgnore, but works during compilation

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

Anybody has idea how do it in right way?

I'm using kotlin 1.3.72, android studio 4.0.1 and gradle 6.5.1

---- EDIT ----

I fix example ignore -> isIgnore in second block, it also not works


Solution

  • Soultion is ignore = true with a little deatil.

    This works if you keep in top-level build.gradle.kts this line:

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

    and not really only on buildSrc on this:

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