Ich habe eine Android-Anwendung, und ich möchte verschiedene Geschmacksrichtungen haben. Spezifisch möchte ich 2 Aromen haben und für jedes Aroma verschiedene Zeichenketten verwenden (unterschiedliche strings.xml
Datei) und möglicherweise einige Ikonen unterschiedlich haben.Verwenden Sie verschiedene Ressourcen für verschiedene Anwendung Aromen mit gradle
Ich habe versucht, die Schaffung von zwei Ordner im Stammordner des Projekts: flav1
und flav2
und verwendet die folgenden build.gradle
android {
compileSdkVersion "Google Inc.:Google APIs:15"
buildToolsVersion "17.0.0"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
productFlavors {
flav1 {
packageName "com.ic.flav1"
}
flav2 {
packageName "com.ic.flav2"
}
}
android.sourceSets.flav2 {
res {
srcDir 'flav2'
}
resources {
srcDir 'flav2'
}
}
android.sourceSets.flav1 {
res {
srcDir 'flav1'
}
resources {
srcDir 'flav1'
}
}
}
Das Ergebnis davon ist, dass keiner der Saiten erkannt wird, mehrere Fehler der folgenden bekommen Typ:
build FAILED :
error: Error: No resource found that matches the given name (at 'contentDescription' with value '@string/txt_addr').
Fehle ich etwas? Wie sollte der Aufbau sein?
Dank
Was ist der Unterschied zwischen "res" und "resources"? Ich bin ein AS-Neuling aus Eclipse ... Ich sehe den Ordner in meinem Projekt, aber ich bin mir nicht sicher, was es tut und wie Sie davon profitieren würden, eine separate "Ressourcen" für jeden Geschmack zu haben? –
Res und Ressourcen ist die gleiche Sache. Es ist nur die Namenskonvention, die AS verwendet ("res"). Mit verschiedenen Ressourcen für jede Geschmacksrichtung können Sie beispielsweise unterschiedliche Bilder für dieselbe Ressourcen-ID erstellen (z. B. R.id.logo kann ein anderes Bild in verschiedenen Geschmacksrichtungen sein) –