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

Jetpack Compose项目中Res目录资源无法被R类识别的问题

解决Jetpack Compose项目中R类无法识别资源的问题

排查与修复步骤

  • 核对包名与R类路径
    确认无法识别资源的文件,其顶部的package声明和自动生成的R类包名完全一致。比如你的app模块包名为com.example.myapp,则R类完整路径为com.example.myapp.R,若文件导入了错误的R(如android.R)或包名不匹配,会直接导致资源找不到。可手动导入正确的R类,或修正文件的包名声明。

  • 清理并重建项目
    在Android Studio中执行:

    1. 点击菜单栏Build -> Clean Project
    2. 再点击Build -> Rebuild Project
      这会清除旧编译缓存,重新生成正确的R类文件,多数资源识别异常都是缓存问题导致。
  • 检查资源命名规范
    确保drawable、raw等目录下的资源文件名符合Android要求:仅允许小写字母、数字、下划线和点,不能包含空格或特殊字符。比如my_lottie_anim是合规的,而MyLottieAnim或my-lottie-anim会导致R类无法生成对应字段。

  • 确认模块资源配置
    打开问题文件所在模块的build.gradle.kts(或build.gradle),检查资源目录配置是否正确:

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

    同时确保res目录被标记为资源目录(Android Studio中显示浅蓝色图标),若标记错误,右键目录 -> Mark Directory as -> Resources Root即可修正。

  • 验证命名空间设置
    在模块的build.gradle.kts中,确认namespace与包名一致:

    android {
        namespace = "com.example.myapp"
    }
    

    从Android Studio Bumblebee版本开始,namespace取代了AndroidManifest.xml中的package作为R类的包名来源,两者不一致会导致R类无法关联资源。

  • 检查资源是否存在且未被排除
    确认raw目录下确实存在my_lottie_anim对应的文件(如my_lottie_anim.json),且未被.gitignore或Android Studio的资源排除规则忽略。可切换到Project视图查看res/raw目录,确认文件存在。

  • 清除IDE缓存并重启
    点击菜单栏File -> Invalidate Caches...,选择Invalidate and Restart,清除Android Studio所有缓存并重启,解决IDE层面的识别异常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 12:49:56