报错时整的错误log如下:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mwl.Refuse_Classification, PID: 18040
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mwl.Refuse_Classification/com.mwl.Refuse_Classification.Activity.BottomNavigationActivity}: android.view.InflateException: Binary XML file line #19 in com.mwl.Refuse_Classification:layout/activity_bottom_navigation: Binary XML file line #19 in com.mwl.Refuse_Classification:layout/activity_bottom_navigation: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView

左边project栏里没有代码报错提示,在网上找了很多方法也没有用。

查看错误日志,提示xml文件里第19行有问题,但找到相关代码后也没有错误提示。
第19行代码如下:
app:menu=“@menu/bottom_nav_menu”
这行代码是定义底部导航栏的,注释掉这行代码后,程序能正常运行,但是底部导航栏没有了。

于是找到这行代码所示的文件之后,发现了问题所在。

<item
    android:id="@+id/navigation_home"
    android:icon="@drawable/ic_home_black_24dp"
    android:title="@string/title_home" />

<item
    android:id="@+id/navigation_dashboard"
    android:icon="@drawable/ic_dashboard_black_24dp"
    android:title="@string/title_dashboard" />

<item
    android:id="@+id/navigation_notifications"
    android:icon="@drawable/ic_notifications_black_24dp"
    android:title="@string/title_notifications" />
<item
    android:id="@+id/navigation_home"
    android:icon="@drawable/ic_home_black_24dp"
    android:title="@string/title_home" />
<item
    android:id="@+id/navigation_dashboard"
    android:icon="@drawable/ic_dashboard_black_24dp"
    android:title="@string/title_dashboard" />
<item
    android:id="@+id/navigation_notifications"
    android:icon="@drawable/ic_notifications_black_24dp"
    android:title="@string/title_notifications" />
`

错误原因在于,我创建BottomNavigationActivity时,创建了两次。虽然事后,删除了一个,但定义底部导航栏内容的menu文件中内容并没有更改,出现了相同的id。此错误没有在project文件显示,只有点进去之后才能看见红色波浪线。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐