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

Jetpack Compose项目无法提取资源 调用R.string找不到字符串资源

Jetpack Compose 项目R.string资源找不到报错修复方案

核心原因与对应修复步骤

  • 检查资源文件合法性
    确保res/values/strings.xml文件格式正确,无未闭合标签、未转义的特殊字符,文件名无大写字母或特殊符号,存放路径符合资源 qualifier 命名规则。
  • 核对R类导入路径
    确认你导入的是项目自身的R类,而非系统的android.R,如果导入语句显示为import android.R,替换为你应用包名对应的R类导入即可。
  • 修正Compose中资源调用方式
    • 可组合函数中不能直接使用R.string.xxx作为字符串使用,该常量返回的是资源的数字ID,必须通过Compose提供的stringResource()方法读取实际字符串,正确示例:
      Text(text = stringResource(R.string.your_string_name))
      
    • 非可组合函数中调用资源,需要传入Context实例读取:
      val str = context.getString(R.string.your_string_name)
      
  • 清理编译缓存重试
    如果资源定义和调用都没有问题,大概率是IDE或编译缓存异常导致,按以下顺序操作后重新构建:
    1. 执行菜单栏 Build -> Clean Project
    2. 执行 Build -> Rebuild Project
    3. 若仍报错,执行 File -> Invalidate Caches...,勾选清除文件系统缓存、本地历史选项后重启Android Studio,重新构建项目
  • 核对构建变体配置
    如果你项目配置了多产品风味、多构建变体,确认你当前构建的变体对应资源目录下存在对应的字符串定义,或主资源目录的定义没有被变体目录的资源覆盖。

额外排查点:如果项目开启了资源混淆、分包配置,检查混淆规则是否排除了R类的资源ID被混淆,避免编译后资源ID匹配异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:24:01