我正在尝试使用Android Build系统中的resConfig和resConfigs.
我的项目有这两个选项的问题,所以我用android studio开始了一个新的空白项目.我附上了我的build.gradle,我只在其中添加了resConfigs"en","fr"
android {
defaultConfig {
...
resConfigs "en", "fr"
...
}
}
Run Code Online (Sandbox Code Playgroud)
并定义了2种基本口味
productFlavors {
fr {
resConfig "fr"
}
en {
resConfig "en"
}
}
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个2 strings.xml文件并翻译了hello_world默认标签
/src/main/res/values/strings.xml(默认)
/src/main/res/values-en/strings.xml
/src/main/res/values-fr/strings.xml
有了这个,我希望在MyApplication/app/builds/intermediates/res/en/debug中只看到3个值文件夹,因为我在resConfigs中定义只使用"en"和"fr"并过滤其他任何内容
/ values/
/values-en/
/values-fr /
虽然,所有语言值文件夹仍然在那里,所以resConfigs没有明显过滤任何东西.
我还希望在运行enDebug flavor变量时从values-en看到标签hello_world,因为我指定了flavor en将使用resConfig"en",尽管当我运行测试应用程序时,我看到来自/ values-fr/strings的标签. xml而不是/values-en/strings.xml,因为平板电脑上的语言配置为法语加拿大
我是否误解了resConfig背后的目的?如果是这样,我应该如何强制只使用语言运行并且不依赖于操作系统区域设置?此解决方案必须与flavorDimensions兼容,因为我在我正在尝试配置的真实应用程序中使用它们.
注意:我也提交了一个错误,因为我认为这个resConfig行为确实存在问题https://code.google.com/p/android/issues/detail?id=180694
谢谢