Я пытаюсь обменять некоторые ресурсы в папке 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
?
Спасибо!