首页 > 解决方案 > 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

有没有办法绕过这个检查或解决这个问题?

标签: androidgradleandroid-gradle-pluginbuild.gradle

解决方案


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

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“产品”是指默认源集。有关详细信息,请阅读有关构建变体的文档


推荐阅读