【发布时间】:2016-01-25 14:54:50
【问题描述】:
我正在开发一个使用 Gradle 作为构建系统的 Android 应用程序。
我的目标是使用一个值(包名)作为applicationId:
productFlavors {
orange {
applicationId "com.fruits.android.orange"
// ...
还可以通过BuildConfig 公开它,以便Java 代码可以访问它。
这种访问必须来自风味之外(即免费版本的应用需要知道付费版本的包名,以便它可以提示用户在 Play 商店中进行升级)。
所以我想做这样的事情:
productFlavors {
orange {
applicationId orangeProPackage
// ...
buildConfigField 'String', 'ORANGE_PRO_PACKAGE', "$orangeProPackage" // ?
只有我不确定如何定义orangeProPackage,以便它在整个 build.gradle 中可见并且不会破坏脚本。
由于有几种不同的风格,如果我能以某种方式将所有这些常量像这样分组(我猜?):
def proPackages = [
orange: "..."
apple: "..."
banana: "..."
]
然后以简洁和描述性的方式引用它们,例如 proPackages.orange 等。
问题是,如何做到这一点?
这不是Is it possible to declare a variable in Gradle usable in Java?的重复项
我已经看到了这个问题(以及其他一些问题)。我知道如何声明 buildConfigFields,我已经有很多了。我的问题是关于重用与buildConfigField相同的值和applicationId。
【问题讨论】:
-
@Maloubobola 它不是重复的。我已经看到了这个问题(以及其他一些问题)。我知道如何声明 buildConfigFields,我已经有很多了。我的问题是关于 reusing 与
buildConfigField和applicationId相同的值。
标签: android groovy gradle build android-productflavors