代码之家  ›  专栏  ›  技术社区  ›  dev90

build.gradle文件中可能有“def”值吗

  •  0
  • dev90  · 技术社区  · 5 年前

    我正在生成多个 apk's 基于不同的配置文件。

    所以我定义了一个变量 build.gradle 文件

    def isPRODBuild = false
    

    我想在中更改此变量 productFlavors 范围,所以我跟着。

    productFlavors {
        dev {
            isPRODBuild= false     
        }
        prod {
            isPRODBuild= true 
        }
    }
    

    但似乎这并没有改变 isPRODBuild 价值。

    是否需要在build.gradle文件中使用其他类型的变量?

    0 回复  |  直到 5 年前
        1
  •  0
  •   Fatih Santalu    5 年前

    在构建时,Gradle生成BuildConfig类,以便您的应用程序代码 可以检查有关当前构建的信息。您还可以添加 从Gradle构建中将自定义字段添加到BuildConfig类 使用buildConfigField()方法访问配置文件 应用程序运行时代码中的这些值。同样,您可以添加应用程序 使用resValue()的资源值。

    所以你可以简单地使用 buildConfigField 定义你的变量。

    productFlavors {
        dev {
            buildConfigField "boolean", "isPRODBuild", "false"   
        }
        prod {
            buildConfigField "boolean", "isPRODBuild", "true"
        }
    }
    

    然后,要访问上述变量,只需使用 BuildConfig.isPRODBuild