Gradle - Android - buildConfigField основывается на паре (productFlavors, buildTypes) - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть поле YOUR_POWER, для которого установлено значение, основанное на типе BuildType.

Моя конфигурация в build.gradle:

productFlavors{
    free {
        buildConfigField "int", "YOUR_POWER", 80
    }
    paid {
        buildConfigField "int", "YOUR_POWER", 100
    }
}
buildTypes {
    debug {}
    release {}
}

Как я могу настроить некоторые конфигурации, например: free + debug = power 70;free + release = power 80;paid + debug = power 90 и paid + release = power 100?

Любые предложения / альтернативные решения приветствуются:)

@ updated: это только пример, тип поля также может быть String.

тот же вопрос: Как установить разные типы сборки для каждого варианта сборки

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

Вам нужно использовать 2 значения:

productFlavors{
    free {
        buildConfigField "int", "YOUR_POWER_BASE", 70
    }
    paid {
        buildConfigField "int", "YOUR_POWER_BASE", 90
    }
}
buildTypes {
    debug {
        buildConfigField "int", "YOUR_POWER_INCREASER", 0
    }
    release {
        buildConfigField "int", "YOUR_POWER_INCREASER", 10
    }
}

И создайте их сумму в коде:

val yourPower = BuildConfig.YOUR_POWER_BASE + BuildConfig.YOUR_POWER_INCREASER
0 голосов
/ 18 апреля 2019

Существует еще одно решение - использовать набор исходных кодов

https://developer.android.com/studio/build/build-variants#sourceset-build

Вы можете создать файл XML, например: config.xml, который может различаться в зависимости от [варианта, типа сборки]

...