Android开发编译报R.drawable找不到myfruits变量 动画资源引用报错求助
针对
R.drawable.myfruits找不到的编译问题解决方案 报错本质是构建流程没有生成对应资源的R类索引,按照优先级从高到低排查即可:
- 修复XML文件的语法错误
你提供的myfruits.xml文件头存在硬性格式错误:原写法为<?xmlversion="1.0"encoding="utf-8"?>,标签名、属性名之间没有留空格,完全不符合XML解析规范,构建器解析失败时会直接跳过该资源文件,不会在R.drawable类中生成对应的引用变量。修改为标准格式即可:<?xml version="1.0" encoding="utf-8"?> - 确认资源存放路径合规
核对myfruits.xml的实际存放位置,必须放在app模块/res/drawable(或带分辨率/屏幕方向限定符的drawable变体目录,如drawable-xhdpi)下,不能存放在java、values、assets等其他目录下,否则不会被资源扫描器识别。当前文件命名myfruits符合小写字母+下划线的资源命名规则,无命名合规性问题。 - 清理失效的构建缓存
上述内容全部修正后,如果仍报找不到符号,大概率是Android Studio的增量构建资源缓存错乱:- 执行菜单栏
Build -> Clean Project,等待清理完成后再执行Build -> Rebuild Project重新生成R类 - 如果缓存问题依然存在,可以关闭项目后手动删除项目根目录下的
.gradle、.idea文件夹,重新同步Gradle配置后再编译
- 执行菜单栏
- 额外运行注意事项
你代码中获取AnimationDrawable的逻辑本身没有问题,但不要在onCreate中直接调用start()启动动画,此时视图还未完成窗口绑定,动画会因无法获取绘制区域而不触发,可以在onWindowFocusChanged回调中调用启动方法。
内容的提问来源于stack exchange,提问作者Pablo
相关产品推荐
相关产品推荐

