Build gradle переменные, которые будут использоваться в коде, в зависимости от типа и типа сборки

Есть ли способ использовать переменные из build.gradle в моем коде, который зависит от вкуса AND buildType?

В этом примере здесь: Можно ли объявить переменную в Gradle пригодной для использования в Java? значение нового ресурса зависит только от того, является ли его отладка или выпуск тип сборки.

То, что я хотел бы иметь, - это одна переменная для каждого возможного buildVariant.

так что-то вроде:

flavor1Debug   => resValue "string", "app_name", "App 1 Debug"
flavor1Release => resValue "string", "app_name", "App 1"
flavor2Debug   => resValue "string", "app_name", "App 2 Debug"
flavor2Release => resValue "string", "app_name", "App 2"

Есть ли хороший способ сделать это либо через build.gradle, либо другим способом, который не включает в себя ключи или выражения else?

Ответ 1

В build.gradle для вашего приложения один из способов достижения этого:

buildTypes {
    debug {
        productFlavors.flavor1.buildConfigField "String", "app_name", "\"App 1 Debug\""
        productFlavors.flavor2.buildConfigField "String", "app_name", "\"App 2 Debug\""
    }
    release {
        productFlavors.flavor1.buildConfigField "String", "app_name", "\"App 1\""
        productFlavors.flavor2.buildConfigField "String", "app_name", "\"App 2\""
    }
}

Обратите внимание, что вы хотите определить свой блок productFlavors {} перед вашими buildTypes.