I would like to define a build config filed where I can use a variable defined in the gradle script it self:
def someVar = 512 android { ... buildConfigField 'int', 'SOME_INT_FIELD', someVar }
But this produces following error:
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.
I could use quotes like:
def someVar = 0 android { ... buildConfigField 'int', 'SOME_INT_FIELD', '"' + someVar + '"' }
But this comes to a compiler error in BuildConfig
// Fields from default config. public static final int SOME_INT_FILED = "512";
So for now I stay with:
def someVar = 0 android { ... buildConfigField 'String', 'SOME_INT_FIELD', '"' + someVar + '"' }
and use it like:
final int value = Integer.valueOf(BuildConfig.SOME_INT_FIELD);
Does anybody has better solution or do I use buildConfigField wrong?
(I also tried using parentheses in combination with any of possibility above.)
I found a solution, so maybe this answer will help somebody in future.
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) } }
And now in java I can get DatabaseVersion variable:
public static final int DB_VERSION = BuildConfig.DatabaseVersion;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With