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

多模块项目中Compose预览无法使用新增资源的问题求助

多模块Android开发中Compose Preview无法识别新增资源的问题解决

很多开发者在多模块Android项目中使用Compose Preview时都会碰到这类问题:新增字符串、Drawable、字体等资源后,即便资源位于同一模块,预览仍会抛出java.lang.NoSuchFieldError: [Resource Name]的渲染错误,只能靠重启Android Studio解决,十分繁琐。以下是几个经过验证的可行解决方案:

  • 清理并重新构建项目
    无需重启AS,直接执行Build > Clean Project,再执行Build > Rebuild Project。该操作会清除旧的资源缓存并重新生成R文件,多数情况下能解决资源识别失效的问题。

  • 同步Gradle并重启Compose Preview进程
    点击工具栏的Sync Project with Gradle Files按钮完成同步,之后在Preview面板右上角点击「Restart Preview」图标(循环箭头样式)。有时只是预览进程未加载新资源,重启预览进程比重启AS高效得多。

  • 禁用Gradle配置缓存
    打开项目根目录的gradle.properties文件,添加或修改以下配置:

    org.gradle.configuration-cache=false
    

    配置缓存可能导致Gradle未及时更新资源索引,禁用后可强制Gradle每次构建都重新解析资源配置。

  • 检查模块资源配置
    确保新增资源的模块在build.gradle.kts(或build.gradle)中正确配置了资源目录,示例如下:

    android {
        sourceSets {
            main {
                res.srcDirs("src/main/res")
            }
        }
    }
    

    同时确认资源文件命名符合Android规范(不能包含大写字母、特殊字符等),避免资源无法被正确生成到R文件中。

  • 更新Android Studio与Compose版本
    部分旧版本的AS或Compose Compiler存在多模块资源预览的bug,更新至最新稳定版(如Android Studio Hedgehog+、Compose Compiler 1.5.0+)可修复已知兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:47:06