I would like to create a very simple task which change a boolean in my gradle config.
I work on an Android application which can be run with several profiles, and for each build a need to specify if in my code the app must fake the bluetooth or not.
My gradle (relevant code) :
def fakeBluetooth = "true"
buildTypes {
debug {
minifyEnabled false
signingConfig android.signingConfigs.debug
buildConfigField "boolean", "fakeBluetooth", fakeBluetooth
}
release {
minifyEnabled true
signingConfig android.signingConfigs.release
buildConfigField "boolean", "fakeBluetooth", fakeBluetooth
}
}
task noFakeBluetooth {
fakeBluetooth = "false"
}
Example of use in my java code :
if (BuildConfig.fakeBluetooth) {
processFictiveBluetoothService();
} else {
// other case
}
Examples of use in command line :
./gradlew iDebug noFakeBluetooth
and
./gradlew iDebug
Problem : in both cases the value of fakeBluetooth is always "true" (with or without "noFakeBluetooth" in cmd line).
You can use project properties to pass the value:
buildTypes {
debug {
minifyEnabled false
signingConfig android.signingConfigs.debug
buildConfigField "boolean", "fakeBluetooth", fakeBluetooth()
}
release {
minifyEnabled true
signingConfig android.signingConfigs.release
buildConfigField "boolean", "fakeBluetooth", fakeBluetooth()
}
}
def fakeBluetooth() {
def value = project.getProperties().get("fakeBluetooth")
return value != null ? value : "true"
}
And then you can pass the property with:
./gradlew iDebug -PfakeBluetooth=true
This works
android.defaultConfig.buildConfigField "String", "value", "1"
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