Try the following:
applicationVariants.all { variant ->
def PRODUCT_IDENTIFIER = "PRODUCT_IDENTIFIER"
def SERVER_URL = "SERVER_URL"
def flavor = variant.productFlavors[0].name
def buildType = variant.buildType.name
if( flavor == "Demo") {
buildConfigField "String", "PRODUCT_IDENTIFIER", "\"identifier_DEMO\""
}
else if( flavor == "Test") {
buildConfigField "String", "PRODUCT_IDENTIFIER", "\"identifier_TEST\""
}
if( buildType == "debug" ) {
variant.buildConfigField "String", "SERVER_URL", "\"https://myserver.com/debug\""
}
else if( buildType == "release" ) {
variant.buildConfigField "String", "SERVER_URL", "\"https://myserver.com/release\""
}
}
Then, from Java side:
String identifier = BuildConfig.HOTEL_IDENTIFIER;
String serverUrl = BuildConfig.SERVER_URL
will result in:
DemoDebug
identifier -> "identifier_DEMO"
serverUrl -> "https://myserver.com/debug"
DemoRelease
identifier -> "identifier_DEMO"
serverUrl -> "https://myserver.com/release"
TestDebug
identifier -> "identifier_TEST"
serverUrl -> "https://myserver.com/debug"
TestRelease
identifier -> "identifier_TEST"
serverUrl -> "https://myserver.com/release"