Wie man eine Variable entsprechend den Geschmacksrichtungen von Gradle einstellt
Ich möchte eine Variable übergebentest
dass ich pro Flavour anders als beim NDK definiere. Aber aus irgendeinem Grund übergibt er immer den Wert des letzten Geschmacks.
Hier ist das build.gradle:
apply plugin: 'com.android.library'
def test
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultPublishConfig "flavorARelease"
publishNonDefault true
defaultConfig {
minSdkVersion 15
targetSdkVersion 17
ndk {
moduleName "test"
ldLibs "log"
}
}
productFlavors {
flavorA {
test = 1
}
flavorB {
test = 2
}
}
buildTypes {
debug {
ndk {
if (cFlags == null) { cFlags = "" }
cFlags = cFlags + " -DLOGGING=1 -DTEST="+test+" "
}
minifyEnabled false
}
release {
ndk {
if (cFlags == null) { cFlags = "" }
cFlags = cFlags + " -DLOGGING=0 -DTEST="+test+" "
}
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
}
Und hier sind die CFLAG-Zeilen aus der generierten Android.mk
build / intermediates / ndk / flavorA / debug / Android.mk:
LOCAL_CFLAGS := -DLOGGING=1 -DTEST=2
Ich erwartete-DTEST=1
Hie
build / intermediates / ndk / flavorB / debug / Android.mk:
LOCAL_CFLAGS := -DLOGGING=1 -DTEST=2
Also wo ist mein Fehler? Oder wie kann ich mein Ziel erreichen? Bitte beachten Sie auch, dass das eigentliche Problem komplexer ist und ich diese Definitionen nach Möglichkeit im Segment "buildTypes" vornehmen möchte.