Android Studio能否自定义res文件夹存图避免Unresolved reference错误?
Android自定义资源目录问题解答
Android不允许在res目录下创建自定义命名的资源文件夹存放图片等资源。官方对res目录下的资源文件夹名称有严格规定,仅支持
drawable-<限定符>(限定符如hdpi/xxhdpi/night等)、mipmap-<限定符>、layout这类标准命名,自定义的drawable-thx不在识别范围内,编译时无法生成对应的R类引用,因此会出现Unresolved reference错误。移到
drawable目录正常的原因:drawable是官方默认的通用图片资源目录,编译系统会自动扫描该目录下的资源并生成R引用。针对
mipmap-xxhdpi无法工作的排查点:- 图片文件名必须符合Android资源命名规则:仅允许小写字母、数字、下划线,不能有大写字符、空格或特殊符号
- 执行
Clean Project+Rebuild Project操作,清除编译缓存(缓存异常常导致资源识别失败) - 确认
mipmap-xxhdpi是直接放在res目录下,而非嵌套在自定义文件夹中
图片分类管理的可行方案:
- 在标准资源目录下创建子目录:比如在
drawable下建family、scenes等子目录,编译系统会自动扫描子目录内的资源,生成的R引用仍直接使用文件名(如R.drawable.father_and_son_2258681),不包含子路径 - 使用
assets目录:将图片放在assets下的任意自定义目录结构中,通过AssetManager手动加载资源,但无法通过R类引用,需编写IO加载代码
- 在标准资源目录下创建子目录:比如在
内容的提问来源于stack exchange,提问作者Mioshek
相关产品推荐
相关产品推荐

