Gradle不区分buildType发行版和调试版

时间:2016-06-09 07:58:18

标签: android gradle android-gradle build.gradle

我有一个gradle构建,我需要根据它是发布版本还是调试版本来进行不同的配置。 问题是gradle构建不区分这两者。

例如:

apply plugin: 'com.android.library'

android {
  compileSdkVersion 22
  buildToolsVersion "22.0.1"

    buildTypes {

        debug {
          println 'debug'

        }
        release {
          println 'release'

        }

    }
  }

当我使用#gradle assembleRelsease'或者使用' gradle assembleDebug',它会同时打印' release'和'调试'在这两种情况下,甚至当我在android studio中使用debug(来自Build Variants)构建时。它根本无法区分它。我所怀疑的是,当我构建发行版时,它只会打印出来'发布'当我构建degub时,它只打印' debug'。有没有人能解决这个问题?我做错了吗?

1 个答案:

答案 0 :(得分:1)

您的脚本将为调试和发布库变体生成预期结果(不同的.aar):它只是一直打印所有内容。

您遇到的是Gradle lifecycle,它经历了初始化,配置和执行阶段。

由于许多build.gradle文件(Android项目通常至少有2个)用于不同目录和子项目的构建过程,并且您可以在构建文件的排序中使用它们之后定义任务,我猜前两个阶段在构建文件之前执行扫描和分析。

配置遍历所有命令,包括println语句。 (参见this example)也许他们选择在配置期间实际打印println以便于调试。