Gradle构建因不同产品而使用相同的字符串名称失败

时间:2018-07-03 06:21:45

标签: android gradle android-gradle build.gradle

我有一个项目,其中我具有相同的字符串名称,但基于如下所示的产品具有不同的值

 <string name="no_storage" product="nosdcard">Insert SD card before using camera</string>
 <string name="no_storage" product="default">Insert SD card before using camera</string>

但是在使用gradle进行构建时,我收到了以下错误消息

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':mergeDebugResources'
Error: Found item String/no_storage more than one time

是否可以绕过此检查或解决此问题?

1 个答案:

答案 0 :(得分:0)

您应该将字符串值放在与风味相关的适当目录中:

src/nosdcard/res/strings.xml(删除product="nosdcard"属性):

<string name="no_storage">Insert SD card before using camera</string>

src/main/res/stringx.xml(删除product="default"属性):

<string name="no_storage">Insert SD card before using camera</string>

我假设default“产品”表示默认来源集。有关详细信息,请阅读documentation on build variants