如何消除android gradle中的默认构建变体

如何消除android gradle中的默认构建变体,android,gradle,Android,Gradle,在我们的项目中,我们已经有了不同的构建变体(dev、qa和其他),这使得默认变体变得不相关和混乱 有没有一种方法可以完全删除默认的构建变体,即debug和release?他们已经生成了无法修复的编译器错误,因为它们不再受支持。我希望他们完全从现实中消失 如果这不可能,我想让依赖它们的大多数任务变得过时,就像它们从未存在一样,比如assembleDebug,compileedebugsources,installDebug,testDebugUnitTest等等 重写几个任务并生成漂亮的错误消息是

在我们的项目中,我们已经有了不同的构建变体(dev、qa和其他),这使得默认变体变得不相关和混乱

有没有一种方法可以完全删除默认的构建变体,即
debug
release
?他们已经生成了无法修复的编译器错误,因为它们不再受支持。我希望他们完全从现实中消失

如果这不可能,我想让依赖它们的大多数任务变得过时,就像它们从未存在一样,比如
assembleDebug
compileedebugsources
installDebug
testDebugUnitTest
等等


重写几个任务并生成漂亮的错误消息是可以的,但我担心我最终会重写很多任务。

将这些任务放在build.gradle上,即使不是所有对调试变量任务的引用都要取消,也会发挥最大的作用

android.variantFilter { variant ->
    if(variant.buildType.name.equals('debug') ) {
        variant.setIgnore(true);
    }
}
不过值得注意的是,如果您有另一个基于debug的变体,它仍然可以工作。例如,如果您以这种方式定义QA variant,则仍然可以运行它:

buildTypes {
    qa {
        initWith debug
        . . .

为什么不直接使用debug和release而不是两个自定义变量名呢?看起来你把事情弄得太复杂了。他们被滥用了好几年,用于与他们的名字无关的事情,让人们感到困惑。贬低技术性的东西比修正人们的期望更容易。