相关疑难解决方法(0)

使用resConfig强制Android风格的区域设置

我正在尝试使用Android Build系统中的resConfig和resConfigs.

  • Android Studio版本1.2.2
  • Gradle构建版本1.2.3
  • OSX 10.10.3

我的项目有这两个选项的问题,所以我用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

谢谢

android locale localization gradle android-productflavors

10
推荐指数
2
解决办法
1万
查看次数