Gradle Swap JniLibs-Ressourcen basierend auf Build-Flavour
Ich versuche, einige Ressourcen im @ zu tauscheres/raw
Ordner und dasjniLibs/armeabi
Ordner basierend darauf, ob es ein @ irelease buildType
oder eindebug buildType
. Derzeit habe ich auch zwei Produktvarianten.
Die build.gradle-Datei:
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')
}
BenutztsourceSet
der richtige Weg dazu? Wenn dies der Fall ist, welcher Ordner sollte erstellt werden, damit die entsprechenden Ressourcen basierend auf dem @ ausgetauscht werdebuildType
nur und unabhängig vomproductFlavors
?
EDIT: Ist es überhaupt möglich, @ zu tauschejniLibs
undraw
Ordnerressourcen?
Ordnerstruktur:
src/main/jniLibs/armeabi
phoneRelease/jniLibs/armeabi
tabletRelease/jniLibs/armeabi
Ist die Ordnerstruktur korrek
EDIT 2: Basierend auf Xaviers Antwort sollte der Gradle so aussehen:
android {
sourcesets {
phone {
jniLibs.srcDirs = ['phoneRelease/jniLibs/']
res.srcDirs = ['androidRelease/res/raw']
}
tablet {
jniLibs.srcDirs = ['tabletRelease/jniLibs/']
res.srcDirs = ['androidRelease/res/raw']
}
}
}
Ich lese immer wieder viele widersprüchliche Antworten. Einige erwähnen, dass Sie nur separate Ordner benötigen, die auf der Build-Variante basieren, und andere erwähnen, dass Sie @ verwenden müssesourceSet
? Vielen Dank