4

在将构建脚本从 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在第二个块中,它也不起作用

4

2 回答 2

3

Soultionignore = true有一点细节。

如果您将这一行保持在顶层,则此方法有效build.gradle.kts

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

不仅限于buildSrc此:

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

于 2020-09-15T10:28:22.213 回答
0

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

variantFilter {
    this.ignore = name == "lorempisum"
}
于 2020-09-07T09:55:59.643 回答