我也有4个strings.xml文件(用于每种口味/语言组合):
src/main/res/values/strings.xml
src/main/res/values-jp/strings.xml
src/f1/res/values/strings.xml
src/f1/res/values-jp/strings.xml
在每个strings.xml文件中,有一个名为“ x”的字符串,在每个文件中具有不同的值,除外文件src/f1/res/values-jp/strings.xml
中,其中一个名为“ x“丢失。
用例:
手机语言为日语,选择风味F1。 “ x”值取自src / main / res / values-jp / strings.xml。
问题:
是否可以优先处理
src/f1/res/values/strings.xml
过度
src/main/res/values-jp/strings.xml
?
答案 0 :(得分:0)
据我所知,没有办法更改资源的合并规则(有一种用于清单的方法,但我看不到任何针对资源的方法)。如here所述,合并规则如下:
<form method="post" action ="edit.php?edit_form=<?=$edit_id;?">
但是基于此,我期望资源合并优先build variant > build type > product flavor > main source set > library dependencies
优先于src/f1/res/values/strings.xml
,因为您正在构建src/main/res/values-jp/strings.xml
风格。 因此,这可能是一个错误,但我自己尚未对此进行测试。
答案 1 :(得分:0)
尝试一下:
productFlavors {
myFrenchFlavor {
buildConfigField "String", "LOCALE", "\"fr\""
}
myEnglishFlavor {
buildConfigField "String", "LOCALE", "\"en\""
}
}
答案 2 :(得分:0)
我知道这是一个老问题,但发现它的人可能会从答案中受益。
从官方的documentation来看,资源名称限定符是这样定义的:
<块引用>语言由两个字母的 ISO 639-1 语言代码定义, 可选后跟两个字母的 ISO 3166-1-alpha-2 区域代码 (以小写 r 开头)。
所以文件名应该是 src/main/res/values-ja
而不是 src/main/res/values-jp
。