BuildConfigField boolean在库项目中始终为false

时间:2018-03-09 19:38:48

标签: android gradle

我正在Android Studio中构建一个库,并且希望将一个名为BuildConfigField的{​​{1}}布尔值设置为true以进行性能构建。但是,它返回false,我需要修复它。

我按照正常步骤创建了字段。当performance中的performance设置为true时,我的问题就出现了,但Java代码的执行就好像是假的。库构建变体为BuildConfig.java,应用变体为performance

以下是在库文件中将debug评估为false的Java代码。此外,performance会返回"BuildConfig.BUILD_TYPE"

"debug"

库的 if (BuildConfig.performance) { // do the thing } 文件

build.gradle

从另一个SO link,我尝试了以下内容但没有成功

android {
    buildTypes {
        release {}
        debug {}
        performance {}

        // set "performance = true" for performance build type
        libraryVariants.all { variant ->
            variant.outputs.all {
                if (variant.getName().contains("performance")) {
                    variant.buildConfigField "Boolean", "performance", "true"
                } else {
                    variant.buildConfigField "Boolean", "performance", "false"
                }
            }

        }
    }
}

1 个答案:

答案 0 :(得分:1)

在构建变体中,指定字段:

  release {
      ...
      buildConfigField "Boolean", "performance", "false"
  }
  performance {
      ...
      buildConfigField "Boolean", "performance", "true"
  }