多模块项目中Compose预览无法使用新增资源的问题求助
很多开发者在多模块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

