【问题标题】:Multiple resource folders多个资源文件夹
【发布时间】:2026-01-14 01:30:01
【问题描述】:

我正在尝试在我的 Android 项目中再添加一个资源文件夹。 我创建了一个新文件夹 extra-res,所以我的项目结构如下所示:

  + src
    + main
      + res
        + layout
        + ...etc...
      + extra-res
        + layout

所以我将它添加到 build.gradle

android {
   .........

   sourceSets {
        main {
            res.srcDirs = ['res', 'extra-res']
        }
    }

}

但在编辑 build.gradle 文件后构建失败。

:app:processDebugResources C:\Users\vovasoft\AndroidStudioProjects\sdbm\app\build\intermediates\manifests\full\debug\AndroidManifest.xml
错误:(13, 23) 找不到与给定名称匹配的资源(在 'icon' 值'@drawable/ic_launcher')。
错误:(14, 24) 未找到与给定名称匹配的资源(在“标签”处,值为“@string/app_name”)。

错误:任务 ':app:processDebugResources' 执行失败。 com.android.ide.common.internal.LoggedErrorException:运行失败 命令:
aapt.exe 包 -f --no-crunch -I android.jar -M \AndroidStudioProjects\sdbm\app\build\intermediates\manifests\full\debug\AndroidManifest.xml -S \AndroidStudioProjects\sdbm\app\build\intermediates \res\调试 -A \AndroidStudioProjects\sdbm\app\build\intermediates\assets\debug -m -J C:\Users\vovasoft\AndroidStudioProjects\sdbm\app\build\generated\source\r\debug -F(在“标签”处,值为“@string/activity_edit_field”)。

在编辑 build.gradle 之前构建成功。

【问题讨论】:

标签: android-studio


【解决方案1】:

当我在https://*.com/a/28176489/2985303 中回答您的原始问题时,我给了您一些错误信息。这将教会我在发布答案之前不要测试答案。您需要更全面地限定资源目录路径,如下所示:

android {
    sourceSets {
        main {
            res.srcDirs = ['src/main/res', 'src/main/extra-res']
        }
    }
}

【讨论】:

  • 感谢您的宝贵时间。您的回答是一个很好的解决方案,但正如@Joel 提到的,我使用了这种*.com/questions/4930398/… 方法。以这种方式组织我的布局资源更容易。
  • 您也可以使用 += 运算符。示例:res.srcDirs += '../../Config/res/'
【解决方案2】:

我收到该错误是因为我忘记在 build.gradle 文件中包含我的新资源文件夹。

【讨论】: