第一次写博,如有不对,多多海涵。
背景: 最近学校Android课要求练习 第一行代码Android 上4.5新闻app实践,要使用到 fragment,recyclerview等控件,但按照书上按部就班写出来后,出现app无法打开情况。初次修改,无果。实在令人郁闷、烦躁、想砸电脑,为了电脑安全,暂且搁置,今再次尝试,成功解决。
书上版本较老,我使用的 Android Stdio 3.5 。
报错现象:
Unable to start activity ComponentInfo{com.example.news_201717225110/com.example.news_201717225110.MainActivity}: android.view.InflateException: Binary XML file line #20: Error inflating class fragment
Caused by: android.view.InflateException: Binary XML file line #20: Error inflating class fragment
分析: 可以看到,为fragment 引用报错,但报错信息中只标注出了错误在渲染错误位置,无法确定,主要观察fragment相应代码,经面向百度开发,此报错为fragment未标注 id 或 name/class [^1] ,但查看后发现并未有此类出错,陷入沉思。
处理: 未能直接观察出错误,采用简单复现方法 。新建一项目,简化流程,检查错误位置。
第一步:新建双fragment页面,左右分布,各带一textview检查是否正常。运行正常。 第二步:为left fragment 添加标题 recyclerview 并带上适配器,运行正常。 第三步:为 right fragment 添加布局内容,内容如下:终于报错了,问题部分找到了。 第四步: 逐个注释组件,发现当 出现时报错,此时更改为其他布局,如 ,问题解决。表示很淦。
结论: 此错误原因未知,花费时间 40min ,不够熟练,简单复现很有用,此BUG解决。
[^1] 不知道对否。
作者:岸上一宅