【发布时间】:2022-01-24 21:16:56
【问题描述】:
logcat 错误:在 findNavController().navigate(navDirections) 调用挂起
viewLifecycleOwner.lifecycleScope.launch {
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
viewModel.goodInfoStateFlow.collectLatest { goodInfoState ->
when (goodInfoState) {
is GoodInfoState.Success -> {
val goodInfo = goodInfoState.goodInfo
Log.d(TAG, "goodInfo: $goodInfo")
val navDirections =
CargoFragmentDirections.actionCargoFragmentToGoodInfoJourneysFragment(
goodInfo
)
findNavController().navigate(navDirections)
}
is GoodInfoState.Error -> {
AlertDialog.Builder(requireContext())
.setMessage(goodInfoState.message)
.setNegativeButton(
"Cancel"
) { dialogInterface, _ ->
dialogInterface.dismiss()
}
}
// GoodInfoState.Loading -> TODO()
}
}
}
}
错误信息: androidx.fragment.app.Fragment$InstantiationException:无法实例化片段.GoodInfoJourneysFragment:调用片段构造函数导致异常 在 androidx.fragment.app.Fragment.instantiate(Fragment.java:633) 在 androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57) 在 androidx.fragment.app.FragmentManager$2.instantiate(FragmentManager.java:448) 在 androidx.navigation.fragment.FragmentNavigator.instantiateFragment(FragmentNavigator.java:132) 在 androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.java:162) 在 androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.java:58) 在 androidx.navigation.NavController.navigate(NavController.java:1066) 在 androidx.navigation.NavController.navigate(NavController.java:944) 在 androidx.navigation.NavController.navigate(NavController.java:877) 在 androidx.navigation.NavController.navigate(NavController.java:863) 在 androidx.navigation.NavController.navigate(NavController.java:851) 在 $onViewCreated$1$1$1.invokeSuspend(CargoFragment.kt:97)
java.lang.NullPointerException 在 fragment.GoodInfoJourneysFragment.(GoodInfoJourneysFragment.kt:17)
【问题讨论】:
-
GoodInfoJourneysFragment: calling Fragment constructor caused an exception。那么有什么例外呢?您没有包含整个堆栈跟踪。 -
@ianhanniballake GoodInfoJourneysFragment.kt 只是错误-> private val binding = _binding!!在 fragment.GoodInfoJourneysFragment.(GoodInfoJourneysFragment.kt:17) 处出现 java.lang.NullPointerException
标签: android kotlin android-fragments navigation kotlin-coroutines