Keine der obigen Antworten hat mir Richtlinien gegeben, also musste ich zwei Stunden damit verbringen, über Groovy-Methods zu lernen.
Ich wollte in der Lage sein, gegen eine Produktions-, Sandbox- und lokale Umgebung anzutreten. Weil ich faul bin, wollte ich die URL nur an einer Stelle ändern. Hier ist, was ich herausgefunden habe:
flavorDimensions 'environment'
productFlavors {
production {
def SERVER_HOST = "evil-company.com"
buildConfigField 'String', 'API_HOST', "\"${SERVER_HOST}\""
buildConfigField 'String', 'API_URL', "\"https://${SERVER_HOST}/api/v1/\""
buildConfigField 'String', 'WEB_URL', "\"https://${SERVER_HOST}/\""
dimension 'environment'
}
rickard {
def LOCAL_HOST = "192.168.1.107"
buildConfigField 'String', 'API_HOST', "\"${LOCAL_HOST}\""
buildConfigField 'String', 'API_URL', "\"https://${LOCAL_HOST}/api/v1/\""
buildConfigField 'String', 'WEB_URL', "\"https://${LOCAL_HOST}/\""
applicationIdSuffix ".dev"
}
}
Alternative Syntax, weil in Groovy-Methods nur ${variable}
mit doppelten Anführungszeichen verwendet werden können.
rickard {
def LOCAL_HOST = "192.168.1.107"
buildConfigField 'String', 'API_HOST', '"' + LOCAL_HOST + '"'
buildConfigField 'String', 'API_URL', '"https://' + LOCAL_HOST + '/api/v1/"'
buildConfigField 'String', 'WEB_URL', '"https://' + LOCAL_HOST + '"'
applicationIdSuffix ".dev"
}
Was für mich schwer zu verstehen war, ist, dass Zeichenketten als Zeichenketten in Anführungszeichen deklariert werden müssen. Aufgrund dieser Beschränkung konnte ich nicht direkt auf die Referenz API_HOST
zugreifen, was ich eigentlich tun wollte.