Android 在当前目标中找不到导航IllegalArgumentException
获取下一个错误:Android 在当前目标中找不到导航IllegalArgumentException,android,android-jetpack,android-navigation,android-jetpack-navigation,android-navigation-graph,Android,Android Jetpack,Android Navigation,Android Jetpack Navigation,Android Navigation Graph,获取下一个错误: Non-fatal Exception: java.lang.IllegalArgumentException: Navigation action/destination com.sai.mand:id/bottom_menu_dialog cannot be found from the current destination a(com.sai.mand:id/bottomMenuDialog) label=BottomMenuDialog at andro
Non-fatal Exception: java.lang.IllegalArgumentException: Navigation action/destination com.sai.mand:id/bottom_menu_dialog cannot be found from the current destination a(com.sai.mand:id/bottomMenuDialog) label=BottomMenuDialog
at androidx.navigation.NavController.navigate(NavController.java:931)
at androidx.navigation.NavController.navigate(NavController.java:868)
at androidx.navigation.NavController.navigate(NavController.java:854)
at com.sai.mand.tools.NavigationHelperKt.startMailApp(NavigationHelperKt.java:131)
at com.sai.mand.features.authorizations.list.AuthorizationsListFragment$setupViewModel$5.onChanged(AuthorizationsListFragment.java:144)
at com.sai.mand.features.authorizations.list.AuthorizationsListFragment$setupViewModel$5.onChanged(AuthorizationsListFragment.java:51)
at androidx.lifecycle.LiveData.considerNotify(LiveData.java:131)
at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:149)
at androidx.lifecycle.LiveData.setValue(LiveData.java:307)
at androidx.lifecycle.MutableLiveData.setValue(MutableLiveData.java:50)
at androidx.lifecycle.LiveData$1.run(LiveData.java:91)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7050)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
但我不明白为什么他发誓说他找不到底部菜单对话框
,而在错误本身中,如果我正确理解了问题的本质,他指的是有趣的startMailApp
但无论如何,这是我的startMailApp的代码:
fun FragmentActivity.startMailApp(supportEmail: String? = null) {
try {
this.startActivityForResult(Intent(Intent.ACTION_SENDTO)
.apply { data = Uri.parse("mailto:${supportEmail ?: DEFAULT_SUPPORT_EMAIL_LINK}") }, 0
)
} catch (ignored: IllegalStateException) {
} catch (ignored: ActivityNotFoundException) {
} catch (e: Exception) {
Timber.e(e)
}
}
导航图的代码及其使用方法:
<dialog
android:id="@+id/bottomMenuDialog"
android:name="com.sai.mand.features.menu.BottomMenuDialog"
android:label="BottomMenuDialog" />
viewModel.onMoreMenuClickEvent.observe(this, Observer { event ->
event.getContentIfNotHandled()?.let { menuItems ->
navigateToDialog(R.id.bottom_menu_dialog, menuItems)
}
})
fun Fragment.navigateToDialog(actionRes: ResId, bundle: Bundle) {
try {
findNavController().navigate(actionRes, bundle)
} catch (e: Exception) {
Timber.e(e)
}
}
viewModel.onMoreMenuClickEvent.observe(这个,观察者{event->
event.getContentIfNotHandled()?.let{menuItems->
导航对话框(R.id.bottom\u菜单\u对话框,菜单项)
}
})
有趣的片段。导航对话框(actionRes:ResId,bundle:bundle){
试一试{
findNavController().导航(actionRes,捆绑)
}捕获(e:例外){
木材.e(e)
}
}