gpt4 book ai didi

android - 如何访问 gradle 构建文件中其他地方的 buildConfigField

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:32 31 4
gpt4 key购买 nike

我试图在我的 productFlavor block 中设置一个 buildConfigField,然后在我的 gradle 构建文件中的其他地方引用该字段,这样我就可以在为我的 apk 构建名称时使用这个值。

例如

productFlavors{
flavor1{
buildConfigField "String", "APP_FLAVOR_NAME", '"MyApp-Flavor1"'

}
flavor2{
buildConfigField "String", "APP_FLAVOR_NAME", '"MyApp-Flavor2"'

}

如何在我的 build.gradle 脚本中的其他地方访问 APP_FLAVOR_NAME?

我也在努力弄清楚如何在构建脚本中引用 flavor 名称本身作为构建 apk 名称的另一种选择。我怎样才能做到这一点?

最佳答案

添加 buildConfigField 会将一个条目写入您的 BuildConfig.java 文件,并且不会在 buildscript 级别公开。这是一种向感兴趣的应用程序代码提供有关特定构建的元信息的方法——而不是其他构建脚本代码。如果您想在构建脚本级别随意使用名称,则需要使用 Gradle 属性。

明确地说,如果您想访问脚本中其他地方的 BuildConfigField 对象集合,您可以使用 android.productFlavors.flavor1.buildConfigFields

编辑

要在遍历 android.applicationVariants.all 时获取特定的 flavor 名称,您可以像这样遍历 flavor 集合(请注意,您不需要捕获对项目的引用迭代,但查看您实际访问的对象是有益的):

task printFlavors << {
println "BuildTypes ⨯ Flavors:"
android.applicationVariants.all { variant ->
println name
variant.productFlavors.each { flavor ->
println flavor.name
}
}
}

或者,按照 kcoppock 的建议,这可以简化为:

task printFlavorName << {
android.applicationVariants.all {
println flavorName
}
}

关于android - 如何访问 gradle 构建文件中其他地方的 buildConfigField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23024989/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com