Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android为ProductFlavor使用不同的字符串_Android_Gradle - Fatal编程技术网

Android为ProductFlavor使用不同的字符串

Android为ProductFlavor使用不同的字符串,android,gradle,Android,Gradle,我有一个包含多个productFlavors的应用程序,我有一个例子,在/main/res/values/strings.xml(R.string.foo_title)中有一个字符串,对于一个ProductFlavor,我希望它是一个不同的字符串 我在ProductFlavors res/values/strings.xml下添加了一个R.string.foo_标题,并期望资源合并将该味道的字符串替换为我更改的字符串,但没有 我想我本以为这会奏效,但在本例中很难找到资源合并如何工作的示例。我期望

我有一个包含多个productFlavors的应用程序,我有一个例子,在/main/res/values/strings.xml(R.string.foo_title)中有一个字符串,对于一个ProductFlavor,我希望它是一个不同的字符串

我在ProductFlavors res/values/strings.xml下添加了一个R.string.foo_标题,并期望资源合并将该味道的字符串替换为我更改的字符串,但没有

我想我本以为这会奏效,但在本例中很难找到资源合并如何工作的示例。我期望这种行为是错误的吗

我可以看到一些解决方案,但它们似乎不太理想:

  • 从/main/res/values中删除id,并使所有口味都有自己的R.string.foo_标题。(那么我没有默认值)
  • 将id更改为特定于产品风味的id。(如果我碰巧重复使用字符串id,我也会遇到同样的问题)

有什么想法吗?

这确实像我预期的那样有效。在某个时候,我需要做一个全面的清理和重建,它刚刚开始工作


如果您遇到异常行为,请尝试干净的重建。

发布您的代码&您当前的输出和预期结果是什么?您在生成之前是否更改了生成变量?@YuvaRaj实际上没有任何要发布的代码。它是productFlavor文件夹中调用getString(R.string.foo_title)的一个活动,它返回main/res/values/strings.xml中定义的字符串,而不是foo/res/values/string。xml@AndyRes是的,根据我的经验,我已经将构建变量更改为foodebugh,我看到了与您相同的事情。合并不会替换现有的键,因此您需要执行选项1:将该字符串拖出到每个风格的单独资源文件中。然而,这看起来确实像是意外的行为,所以我很想知道是否还有其他方法。