返回顶部
首页 > 资讯 > 移动开发 >Caused by: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView
  • 617
分享到

Caused by: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView

comgoogleBYclasserrormaterialAndroid 2022-06-06 13:06:07 617人浏览 泡泡鱼
摘要

Caused by: Error inflating class com.google.android.material.bottomnavi

Caused by: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView Android5.0~6.0之间的兼容性问题

BottomNavigationView inflating错误问题

最近刚好跑一个demo,在Android studio 上编译,运行在Android5.1 的手机上,结果程序一运行就闪退。报错原因如下:
图一

问题分析

由于BottomNavigationView是android.material包里的控件,报错的原因首先考虑兼容性问题,下面逐一分析:

系统版本导致兼容性分析 。依次在Android6.0、Android7.0、Android8.0虚拟机上面测试,测试结果如下:android6.0-闪退,android7.0、8.0-成功运行。得出结论:android7.0以下程序运行闪退,而android7.0以上则成功运行。 排除android7.0增加的FileProvider导致的崩溃问题 新建一个带Bottom Navigation Activity Project,观察其在android5.0和6.0的运行情况。结果发现刚新建的Project运行正常。
在这里插入图片描述 通过Beyond Compare 对比两个项目之间的差异,发现新建的带BottomNavigationView 的项目,其BottomNavigationView 的menu属性中指定的icon的资源是放在drawable 目录下,如下图所示。
在这里插入图片描述 对比发现报错的project 中BottomNavigationView 的menu属性中的icon属性指定的图片则放在了drawable-v24目录下(比如下图tabbar_home.png只有drawable-v24目录下才有),众所周知,drawable-v24目录是android7.0以上才能访问的资源目录,同理还有mipmap-anydpi-v26也是android8.0以上才能访问的资源目录。
在这里插入图片描述 总结

综上所述,其项目闪退原因是:在android7.0以下运行该程序,导致BottomNavigationView 中的menu属性获取不到drawable-v24文件夹中的资源,导致程序奔溃。解决方法是:把BottomNavigationView中menu属性用到的drawable-v24文件夹中的图片资源复制一份到drawable文件夹中即可解决。
在这里插入图片描述
最后需要注意的是:不同的资源文件目录可能对应着不同的android版本号,比如上图所示drawable-v24对应的版本是android7.0以上,mipmap-anydpi-v26对应的版本是android8.0以上。


作者:m0_37269393


--结束END--

本文标题: Caused by: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView

本文链接: https://lsjlt.com/news/29234.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作