Android 开发问题:android.content.res.Resources$NotFoundException: Resource ID

android.content.res.Resources$NotFoundException: Resource ID #0xff412804
问题原因
  1. 该异常表示 Android 系统尝试通过资源 ID 查找资源,例如,颜色、图片等,但未查找到对应资源

  2. 其中,0xff412804 是一个硬编码的整型颜色值,不是有效的资源 ID

问题复现
  1. 调用 setBackgroundResource(int resid) 方法时,传入了一个错误的资源 ID(颜色值)
TextView tvContent = findViewById(R.id.tv_content);

tvContent.setBackgroundResource(0xff412804);
  1. 调用 getColor(@NonNull Context context, @ColorRes int id) 方法时,传入了一个错误的资源 ID(颜色值)
int color = ContextCompat.getColor(this, 0xff412804);
  1. 调用 getDrawable(int id) 方法时,传入了一个错误的资源 ID(颜色值)
Drawable drawable = getResources().getDrawable(0xff412804);
处理策略
  • 注意避免颜色值与混淆 ID 资源,直接将颜色值作为资源 ID 传递
  1. 对于颜色,可以直接设置颜色值
// 设置背景颜色

TextView tvContent = findViewById(R.id.tv_content);

tvContent.setBackgroundColor(0xff412804);
// 设置文本颜色

TextView tvContent = findViewById(R.id.tv_content);

tvContent.setTextColor(0xffff0000);
  1. 加载颜色资源
Drawable drawable = new ColorDrawable(0xff412804);

你可能感兴趣的:(Android,-,问题清单,android,开发语言,java-ee,java,android-studio,android,studio,android,jetpack)