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