Chcę przekazać zmienną test
, którą ustawiam odmiennie dla każdego smaku jako zdefiniowany w NDK. Ale z jakiegoś powodu zawsze przekazuje wartość ostatniego smaku.Jak ustawić zmienną według smaków stopniowych
Oto 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'
}
A oto linie CFLAG z wygenerowanym Android.mk
build/półproduktów/NDK/flavorA/debug/Android.mk:
LOCAL_CFLAGS := -DLOGGING=1 -DTEST=2
Spodziewałem -DTEST=1
tutaj
build/półproduktów/NDK/flavorB/debug/Android.mk:
LOCAL_CFLAGS := -DLOGGING=1 -DTEST=2
Więc gdzie jest mój błąd? Albo jak mogę osiągnąć mój cel? Proszę również wziąć pod uwagę, że prawdziwy problem jest bardziej złożony i jeśli to możliwe, chcę je zdefiniować w segmencie "buildTypes".
** Test rozciąga ConventionTask **. Dlatego Twój produkt Smaki nie będzie budowany, ponieważ używasz zastrzeżonego słowa kluczowego jako zmiennej. –
Nie jestem pewien, czy odwołujesz się do pytania lub rozwiązania. W moim prawdziwym projekcie nie jest to "test", ale zestaw różnych zmiennych. Jeśli ten przykład zostanie uszkodzony z powodu użycia 'testu', czy możesz to naprawić? Ponieważ jestem naprawdę zardzewiały z gradle ponownie, ponieważ zmagałem się z tym problemem z powrotem. - Czy zmiana wszystkich wystąpień 'testu' na' dTest' już załatwi sprawę? – Torge
Miałem na myśli ** productFlavours **, w którym zadeklarowałeś 'Test'. Poszedłem do przodu i zmieniłem nazwę zmiennej. Dzięki! –