You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌套布局文件夹引发Resources$NotFoundException问题求助

解决Android布局子文件夹导致的Resources$NotFoundException问题

问题原因

你在sourceSets中配置的资源目录路径不符合Android Gradle插件的资源识别规则:

  • Android资源系统要求每个资源根目录下必须包含标准资源子目录(如layout、drawable)
  • 你添加了多层嵌套的目录(src\\main\\res\\layouts、src\\main\\res\\layouts\\king_panel、src\\main\\res\\layouts\\king_panel\\layout),导致Gradle无法正确解析资源归属,进而出现资源ID找不到的异常。

解决方案

1. 调整目录结构

将布局文件放在符合资源规范的子目录下,建议结构:

src/main/res/
├── layout/              # 通用布局文件
└── layouts/
    └── king_panel/
        └── layout/      # king_panel相关布局文件(如king_panel_geoloc.xml)

2. 修改sourceSets配置

只需要将包含标准资源子目录的文件夹添加到res.srcDirs中,修改app/build.gradle:

sourceSets {
    main {
        // 只添加king_panel的资源根目录,内部包含layout子文件夹
        res.srcDirs += 'src/main/res/layouts/king_panel'
    }
}

3. 清理并重建项目

执行以下操作确保资源正确生成:

  • 点击Android Studio菜单栏的Build > Clean Project
  • 然后点击Build > Rebuild Project
  • 重启Android Studio(可选,避免缓存问题)

额外排查点

如果仍报错,检查以下内容:

  • 确认king_panel_geoloc.xml第18行引用的资源(如drawable、string、id)是否存在,且没有拼写错误
  • 检查资源ID冲突:使用./gradlew app:lint命令扫描潜在的资源问题
  • 确保所有布局文件的文件名符合Android资源命名规范(小写字母、下划线,无特殊字符)

内容的提问来源于stack exchange,提问作者Charles Semaan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 02:27:36