如题,我的测试手机是红米5Plus(API 24,7.0系统),华为P8(API 21,5.1系统),还有一台,华为P9(API 23,6.0系统),我的一个RecyclerView 显示的页面在红米可以,其他两台都是报错:
Binary XML file line #24: Error inflating class <unknown>
哇,心态炸了,一开始我以为是我的业务逻辑判断错误,导致不同的系统的手机显示界面错误,只好一直debug 都跟不出问题;还有RecyclerView 是第三方的,还去Github 提问了,也是被建议去检查一下item的布局xml文件是否有错。
前后折腾了些日子,结果今天放下心态,重新跟问题,将Log 打印权限调至Warnning ,结果发现和很重要的一个信息:
W/ResourceType: Failure getting entry for 0x7f020083 (t=1 e=131) (error -75)
E/AndroidRuntime: FATAL EXCEPTION: main
Process: app.justec.com.bleoperator, PID: 30638
android.view.InflateException: Binary XML file line #26: Error inflating class
<unknown>
这个 资源Id 0x7f020083 引起了我的注意,我直接Ctrl+H 全局搜索定位R.java 这个id对应的资源,发现是:
public static final int ry_item_group_red=0x7f020083;
ry_item_group_red.xml 这个是一个Drawable资源?没有嘛?但是红米能显示出来对应的颜色效果/加载错了?在抬头看一下文件夹位置:
呜呜呜,瞬间,廓然开朗,嘤嘤嘤,我在办公室大喊了一声~
原来是在API24的资源文件Drawable我配置了,但是低于API24我没配置,哇哇哇~
解决办法:
再各复制一份原来的资源到drawable 文件夹咯,告一段落~
记录一下这次深刻的爬坑之旅~
道友保重~