Force Gebietsschema für Android-Version mit resConfig
Ich versuche, resConfig und resConfigs aus dem Android Build-System zu verwenden.
Android Studio Version 1.2.2Gradle Build Version 1.2.3OSX 10.10.3Ich hatte Probleme mit diesen beiden Optionen in meinem Projekt, also habe ich ein neues leeres Projekt mit Android Studio gestartet. Ich habe mein build.gradle angehängt, wo ich nur resConfigs "en", "fr" unter @ hinzugefügt hab
android {
defaultConfig {
...
resConfigs "en", "fr"
...
}
}
Und definiert 2 Grundgeschmacksrichtungen
productFlavors {
fr {
resConfig "fr"
}
en {
resConfig "en"
}
}
Ich habe dann 2 strings.xml-Dateien erstellt und das Standard-Label "hello_world" übersetzt
/ src / main / res / values / strings.xml (Standard)
/ src / main / res / values-de / strings.xml
/ src / main / res / values-fr / strings.xml
Damit würde ich erwarten, dass in MyApplication / app / builds / intermediates / res / en / debug nur 3 Werteordner angezeigt werden, da ich in den resConfigs definiert habe, nur "en" und "fr" zu verwenden und alles andere zu filtern
/Werte
/ values-de /
/ values-fr /
Obwohl der Ordner mit den Sprachwerten immer noch vorhanden ist, filtert resConfigs anscheinend nichts.
Ich würde auch erwarten, das Label hello_world von values-en zu sehen, wenn enDebug flavour variant ausgeführt wird, da ich angegeben habe, dass die Flavour en resConfig "en" verwendet, obwohl ich beim Ausführen der Test-App das Label von / values-fr / strings sehe .xml anstelle von /values-de/strings.xml, da die Sprache auf dem Tablet wie folgt konfiguriert ist: French Canada
Bin ich missverstanden den Zweck hinter resConfig? Wenn ja, wie soll ich erzwingen, dass eine Version nur in der Sprache ausgeführt wird und nicht von der Ländereinstellung des Betriebssystems abhängig ist? Diese Lösung muss auch mit FlavorDimensions kompatibel sein, da ich sie in der eigentlichen App verwende, die ich zu konfigurieren versuche.
HINWEI: Ich habe auch einen Fehler gemeldet, da ich denke, dass es wirklich ein Problem mit diesem resConfig-Verhalten gibt.https: //code.google.com/p/android/issues/detail? id = 180694
Vielen Dan