导航组件崩溃 onOptionsItemSelected

问题描述

我开始在 Firebase Crashlytics 中收到此崩溃消息。非常稀缺。

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'androidx.navigation.q androidx.navigation.o.N()' on a null object reference
   at androidx.navigation.ui.NavigationUI.onNavDestinationSelected(NavigationUI.java:13)
   at androidx.navigation.ui.MenuItemKt.onNavDestinationSelected(MenuItemKt.java:10)
   at xxx.main.MainActivity.onoptionsItemSelected(MainActivity.java:9)
   at android.app.Activity.onMenuItemSelected(Activity.java:4203)
   at androidx.fragment.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java)

应用程序的代码是标准的。主要活动:

override fun onoptionsItemSelected(item: MenuItem): Boolean {
    return item.onNavDestinationSelected(navController) || super.onoptionsItemSelected(item)
}

我无法模拟这个问题。应用的相关代码在启动版本和之前版本之间没有变化。

在我看来崩溃是在导航组件中,因为我刚刚将导航组件版本从 2.3.1 更新到 2.3.3。

我认为这部分代码存在问题,在 2.3.1 和 2.3.2 版本之间发生了变化。可能有 getCurrentDestination() null 或 getParent() null:

navController.getCurrentDestination().getParent().findNode(item.getItemId())

检查差异 reprex package

我还发现了可能相关的问题,他们建议问题出在库中。 https://android.googlesource.com/platform/frameworks/support/+/ca16b13764d67c8e4d97f446e6ff1d116ceb73c8%5E%21/#F1

有人知道如何重现这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)