Wie man auf eine buildConfigField an anderer Stelle in einer Gradle-Build-Datei zugreifen kann

Ich versuche, ein buildConfigField in meinem productFlavor Block zu setzen, und dann auf dieses Feld anderswo in meiner Gradle Build-Datei zu verweisen, damit ich diesen Wert bei der Konstruktion des Namens für meinen apk verwenden kann.

z.B

  • Deaktivieren Sie die Schaltfläche beim Bearbeiten von Textfeldern leer
  • ADT Bundle für Windows 7 64bit fehlt JRE Ordner und nicht laufen - ich habe versucht
  • Ein gutes Tutorial für die Verwendung von AccountManager in Android?
  • Android: Benutzername und Passwort speichern?
  • Gibt den Paketcode der Vordergrund-App in Marshmallow um 3 Sekunden verzögert
  • Gibt es eine AdMob-Dummy-ID?
  • productFlavors{ flavor1{ buildConfigField "String", "APP_FLAVOR_NAME", '"MyApp-Flavor1"' } flavor2{ buildConfigField "String", "APP_FLAVOR_NAME", '"MyApp-Flavor2"' } 

    Wie kann ich auf APP_FLAVOR_NAME an anderer Stelle in meinem build.gradle-Skript zugreifen?

    Ich bin auch kämpfen, um herauszufinden, wie man nur den Geschmack Namen selbst in der buildscript als eine andere Option auf den Bau der apk Namen. Wie kann ich das auch machen?

  • Hält Android die .apk-Dateien? Wenn ja wo
  • Workaround für das Empfangen von Systemübertragungen mit App auf SD-Karte installiert?
  • Com.google.android.feedback in Google Analytics
  • Globale Unerwarte-Ausnahme-Handler -> E-Mail-Log an mich?
  • Wie aktiviere ich SSL-Debugging auf der Android-Plattform?
  • Wie man JSON-Ergebnisse von Unirest-Aufruf analysiert
  • One Solution collect form web for “Wie man auf eine buildConfigField an anderer Stelle in einer Gradle-Build-Datei zugreifen kann”

    Hinzufügen eines buildConfigField schreibt einen Eintrag in Ihre BuildConfig.java Datei und ist nicht dazu gedacht, auf der Buildscript- Ebene ausgesetzt zu sein . Dies ist ein Weg, um Meta-Informationen über einen bestimmten Build zu interessierten Anwendungscode – nicht anderen Buildscript-Code. Wenn du Namen auf der buildscript-Ebene werfen willst, musst du die Eigenschaften von Gradle verwenden.

    Wenn Sie explizit auf die BuildConfigField-Sammlung von Objekten an anderer Stelle in Ihrem Skript zugreifen möchten, können Sie mit android.productFlavors.flavor1.buildConfigFields .

    Bearbeiten

    Um einen bestimmten Geschmack Namen zu bekommen, wenn Iteration über android.applicationVariants.all , können Sie über die Aromen-Sammlung wie so iterieren (beachten Sie, dass Sie nicht brauchen, um den Verweis auf das Element, das Sie iterating über zu erfassen, aber es ist lehrreich zu sehen, was Objekte, auf die Sie tatsächlich zugreifen):

     task printFlavors << { println "BuildTypes ⨯ Flavors:" android.applicationVariants.all { variant -> println name variant.productFlavors.each { flavor -> println flavor.name } } } 

    Oder, wie von kcoppock vorgeschlagen , kann dies vereinfacht werden zu:

     task printFlavorName << { android.applicationVariants.all { println flavorName } } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.