Wie definieren und verwenden einer Konstante in den Gradle-build-Skript (Android)?

Ich arbeite an einer Applikation für Android-mit Gradle als seine build-system.

Mein Ziel ist es, einen Wert (einen Paketnamen) als applicationId:

productFlavors {
   orange {
      applicationId "com.fruits.android.orange"
      //...

Aber auch zu entlarven, die es über BuildConfig so dass Java-code aus Zugriff darauf hat.

Dieser Zugang muss von außen den Geschmack (nämlich die Kostenlose version der app muss wissen, den Namen des Pakets der kostenpflichtigen version, so dass Sie können Benutzer auffordern, für eine Aktualisierung im Play store).

So, ich würde gerne so etwas machen:

productFlavors {
   orange {
      applicationId orangeProPackage
      //...


buildConfigField 'String', 'ORANGE_PRO_PACKAGE', "$orangeProPackage" //?

Nur ich bin mir nicht sicher, wie Sie Sie definieren orangeProPackage so, dass es sichtbar in der gesamten bauen.gradle und nicht brechen Sie das Skript.

Da gibt es einige verschiedene Varianten, am besten wäre es wenn ich irgendwie könnte alle diese Konstanten, wie das (denke ich?):

def proPackages = [
        orange: "..."
        apple: "..."
        banana: "..."
]

dann finden Sie Sie in eine saubere und anschauliche Art und Weise, wie proPackages.orange etc.

Ist die Frage, wie das zu schaffen?

Dies ist kein Duplikat von Ist es möglich eine variable zu deklarieren, die in Gradle nutzbar in Java?

Habe ich gesehen, dass die Frage (und ein paar andere). Ich weiß, wie zu erklären, buildConfigFields, ich habe bereits viel. Meine Frage ist über Wiederverwendung den gleichen Wert wie ein buildConfigField und applicationId.

Schreibe einen Kommentar