Я хочу передать переменную test
, которую я устанавливаю по-разному для каждого аромата в качестве определения для NDK. Но по какой-то причине он всегда передает значение последнего вкуса.
Вот пример 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'
}
И вот строки CFLAG из созданного Android.mk
строить/промежуточные/НДК/flavorA/отлаживать/Android.mk:
LOCAL_CFLAGS := -DLOGGING=1 -DTEST=2
Я ожидал -DTEST=1
здесь
строить/промежуточные/НДК/flavorB/отлаживать/Android.mk:
LOCAL_CFLAGS := -DLOGGING=1 -DTEST=2
Итак, где моя ошибка? Или как я могу достичь своей цели? Также подумайте, что реальная проблема сложнее, и я хочу, чтобы эти определения определялись в сегменте "buildTypes", если это возможно.