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

所有drawable文件夹含9-Patch图仍报Resource.NotFoundException求助

9-Patch资源找不到问题的优化解决方案

问题背景

  • 启动HomeScreenActivityV2时触发InflateException,根源为Resources$NotFoundException,目标资源是作为TextView背景的9-Patch图tab_white_left_9
  • 该图已覆盖所有分辨率资源目录(drawable-ldpi、mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi),但仍报错
  • 临时解决方式是将低分辨率版本放入默认drawable目录,但存在资源重复问题

优化解决方案

1. 配置资源目录优先级

在Module级别的build.gradle中指定资源目录的查找顺序,让系统优先读取已有的分辨率专属目录,无需在默认drawable目录重复放置资源:

android {
    sourceSets {
        main {
            res.srcDirs = [
                'src/main/res/drawable-xxxhdpi',
                'src/main/res/drawable-xxhdpi',
                'src/main/res/drawable-xhdpi',
                'src/main/res/drawable-hdpi',
                'src/main/res/drawable-mdpi',
                'src/main/res/drawable-ldpi',
                'src/main/res'
            ]
        }
    }
}

2. 验证9-Patch图合法性

  • 检查所有分辨率下的9-Patch图后缀是否为.9.png,文件名完全一致(包括大小写)
  • 使用Android Studio内置的9-Patch编辑器验证边缘拉伸标记是否正确,避免因格式错误导致资源无法识别

3. 清理缓存并重建项目

  • 执行Build > Clean Project后再执行Build > Rebuild Project
  • 清除设备/模拟器上的应用缓存,排除旧资源缓存干扰

4. 使用资源别名避免重复

在默认drawable目录下创建一个XML资源文件(如tab_white_left_9.xml),作为已有9-Patch资源的别名,无需重复放置图片文件:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/tab_white_left_9" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 01:50:34