Gradle buildConfigField mit Integer-Variable

Ich möchte eine Build-config definieren, wo ich eine Variable verwenden kann, die im gradle-Skript selbst definiert ist:

def someVar = 512 android { ... buildConfigField 'int', 'SOME_INT_FIELD', someVar } 

Aber das ergibt folgende Fehler:

  • Wie bekomme ich installierte Anwendungsberechtigungen?
  • Die Tastatur kann nicht automatisch im SearchView angezeigt werden
  • Keine Antwort vom entfernten Client: Fehler bei der Dateiübertragung mit asmack
  • Android - Laden und Installieren von apk-Datei in Webview
  • Verschiedene Auflösung Unterstützung Android
  • Verständnis von Leinwand- und Oberflächenkonzepten
  • Fehler: (25, 0) Gradle DSL-Methode nicht gefunden: 'buildConfigField ()'

    Mögliche Ursachen:

  • Das Projekt 'PROJECT' kann eine Version von Gradle verwenden, die die Methode nicht enthält.
  • Die Build-Datei kann ein Gradle-Plugin fehlen.

  • Ich könnte Zitate wie:

     def someVar = 0 android { ... buildConfigField 'int', 'SOME_INT_FIELD', '"' + someVar + '"' } 

    Aber das kommt zu einem Compiler-Fehler in BuildConfig

     // Fields from default config. public static final int SOME_INT_FILED = "512"; 

    Also jetzt bleibe ich bei:

     def someVar = 0 android { ... buildConfigField 'String', 'SOME_INT_FIELD', '"' + someVar + '"' } 

    Und benutze es wie:

     final int value = Integer.valueOf(BuildConfig.SOME_INT_FIELD); 

    Hat jemand eine bessere Lösung oder verwende ich buildConfigField falsch?

    (Ich habe auch versucht, Klammern in Kombination mit einer der Möglichkeit oben.)

  • Ist Caching-Werte von SharedPreferences sinnvoll?
  • Nicht länger will ActivityManager - kein Service-Problem
  • Finden Sie Abstand zwischen zwei Punkten auf Karte mit Google Map API V2
  • Android-Taste Onclick Override
  • Warum unterscheiden sich Typen von Produkt-Aromen?
  • Android - Ist es möglich, eine benutzerdefinierte Bibliothek für mehrere Anwendungen zu erstellen?
  • One Solution collect form web for “Gradle buildConfigField mit Integer-Variable”

    Ich habe eine Lösung gefunden, also vielleicht diese Antwort wird jemandem in Zukunft helfen.

     def String globalVersionCode defaultConfig { applicationId "com.test.gradle.build" minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName "0.1" globalVersionCode = versionCode } buildTypes { release { buildConfigField ("int", "DatabaseVersion", globalVersionCode) } } 

    Und jetzt in Java kann ich DatabaseVersion Variable:

     public static final int DB_VERSION = BuildConfig.DatabaseVersion; 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.