Я пытаюсь обменять некоторые ресурсы в папке res/raw и папке jniLibs/armeabi на основе того, есть ли она release buildType или debug buildType. В настоящее время у меня есть два продукта.
Файл build.gradle:
apply plugin: 'com.android.application'
android {
dexOptions {
preDexLibraries = false
}
compileSdkVersion 21
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.test"
minSdkVersion 17
targetSdkVersion 22
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
productFlavors{
phone{
applicationId "com.example.testPhone"
}
tablet{
applicationId "com.example.testTablet"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets{
release{
res.srcDirs = ['androidRelease/res/raw']
}
}
}
dependencies {
compile project(':facebook')
}
Использует sourceSet правильный способ сделать это? Если это так, то какая папка должна быть создана так, чтобы она меняла местами соответствующие ресурсы только на buildType и независимо от productFlavors?
EDIT: возможно ли обмен файлами jniLibs и raw на папки?
Структура папки:
src/main/jniLibs/armeabi
phoneRelease/jniLibs/armeabi
tabletRelease/jniLibs/armeabi
Правильно ли создана структура папок.
ИЗМЕНИТЬ 2: На основе ответа Xavier, если gradle выглядит следующим образом:
android {
sourcesets {
phone {
jniLibs.srcDirs = ['phoneRelease/jniLibs/']
res.srcDirs = ['androidRelease/res/raw']
}
tablet {
jniLibs.srcDirs = ['tabletRelease/jniLibs/']
res.srcDirs = ['androidRelease/res/raw']
}
}
}
Я продолжаю читать много противоречивых ответов, некоторые из них отмечают, что вам просто нужны отдельные папки на основе варианта сборки, а некоторые упоминают о необходимости использовать sourceSet?
Спасибо!