Ich mag würde ein Build-Config abgelegt definieren, wo ich eine Variable definiert im gradle Skript es selbst verwenden kann:Gradle buildConfigField mit Integer-Variable
def someVar = 512
android {
...
buildConfigField 'int', 'SOME_INT_FIELD', someVar
}
Aber die erzeugt folgende Fehlermeldung:
Error:(25, 0) Gradle DSL method not found: 'buildConfigField()'
Possible causes:
The project 'PROJECT' may be using a version of Gradle that does not contain the method. The build file may be missing a Gradle plugin.
konnte ich Zitate wie:
def someVar = 0
android {
...
buildConfigField 'int', 'SOME_INT_FIELD', '"' + someVar + '"'
}
Aber dies kommt zu einem Compiler-Fehler in BuildConfig
// Fields from default config.
public static final int SOME_INT_FILED = "512";
So jetzt ich mit bleiben:
def someVar = 0
android {
...
buildConfigField 'String', 'SOME_INT_FIELD', '"' + someVar + '"'
}
und verwenden Sie es mögen:
final int value = Integer.valueOf(BuildConfig.SOME_INT_FIELD);
Hat jemand bessere Lösung oder verwende ich buildConfigField falsch?
(ich habe auch versucht, über Klammern in Kombination mit einem der Möglichkeit verwenden.)
Dank, der Schlüssel ist, um die Variable als Typ 'String' zu definieren, sondern 'int' für buildConfigField verwenden. Das macht Casting und Parsing überflüssig. Das habe ich gesucht. – salcosand