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.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage