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

Fragment中结合AsyncTask使用RecyclerView遇Resources$NotFoundException错误求助

解决Fragment中AsyncTask+RecyclerView出现的Resources$NotFoundException错误

嘿,这个问题我之前踩过坑,其实原因非常明确,咱们一步步来解决:

错误根源分析

你看到的android.content.res.Resources$NotFoundException: String resource ID #0x67b,本质是调用TextView.setText()时传入了整数类型的值——Android会默认把这个整数当成字符串资源的ID去strings.xml里查找,但你的项目里根本没有这个ID对应的字符串资源,自然就抛出异常了。

结合你的场景(Fragment里用AsyncTask加载数据给RecyclerView的Adapter),大概率是在onBindViewHolder方法里,你直接把某个数值类型的数据(比如AsyncTask返回的int/long字段)传给了setText,比如写出了这样的代码:

// 错误示例:直接传入int类型数据
holder.myTextView.setText(item.getCount()); // item.getCount()返回int

修复方案

只需要把数值类型的数据转换成字符串再传入setText即可,有两种常用方式:

  1. 使用String.valueOf()方法转换
// 正确写法:转成字符串后设置
holder.myTextView.setText(String.valueOf(item.getCount()));
  1. 用空字符串拼接实现转换
// 另一种正确写法
holder.myTextView.setText(item.getCount() + "");

排查步骤

  1. 打开报错提示里的MyFragment.java,定位到第156行(也就是onBindViewHolder里触发错误的那行)
  2. 检查传入setText()的参数类型:如果是int/long这类数值类型,按照上面的方法转成字符串
  3. 如果你确实是想加载字符串资源ID,那要确认这个ID对应的字符串在res/values/strings.xml中存在,检查是否打错了资源名称或ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:27:01