【发布时间】:2020-06-15 16:35:01
【问题描述】:
我最近切换到 Android 导航,但遇到了很多情况(在代码的不同部分),我得到:
Fatal Exception: java.lang.IllegalArgumentException
navigation destination com.xxx.yyy:id/action_aFragment_to_bFragment is unknown to this NavController
在任何情况下,代码都是简单的调用,例如:
findNavController(this, R.id.navigation_host_fragment).navigate(R.id.action_aFragment_to_bFragment)
通常响应按钮按下。
目前尚不清楚为什么会抛出此错误。我目前的怀疑是 onClickListener 在某些设备上被调用了两次,导致导航被第二次调用(导致它当时处于错误的状态)。这种怀疑的原因是,这似乎最常发生在导航调用之前可能有“长时间”运行的操作的情况下。不过,我无法在自己的设备上重新创建它。
关于如何避免此问题的想法(或者实际上,问题的实际根本原因是什么)?
我不想使用 Global Actions;我对在后台引入更多意想不到的状态持谨慎态度。而且我真的不希望每次进行导航调用时都必须尝试测试当前状态。
【问题讨论】:
标签: android android-architecture-navigation