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:呼叫 Fragment 建構式在 androidx.fragment.app. FragmentContainer.instantiate(FragmentContainer.java:57) at androidx.fragment.app.FragmentManager$2.instantiate(FragmentManager.java:448) at androidx.navigation.fragment.FragmentNavigator.instantiateFragment(FragmentNavigator.java:132) at android.vix.navigation fragment.FragmentNavigator.navigate(FragmentNavigator.java:162) at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.java:58) at androidx.navigation.NavController.navigate(NavController.java:1066) at androidxControllerNavController .navigate(NavController.java:944) 在 androidx.navigation.NavController。導航(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 at fragment.GoodInfoJourneysFragment.(GoodInfoJourneysFragment.kt:17)
uj5u.com熱心網友回復:
在我更改為 -> 私有 val 系結后 get() =
并解決了這個問題。
起源:
class CargoFragment : Fragment() {
private var _binding: FragmentCargoBinding? = null
private val binding = _binding!!
}
修改后:
class CargoFragment : Fragment() {
private var _binding: FragmentCargoBinding? = null
private val binding get() = _binding!!
}
uj5u.com熱心網友回復:
請GoodInfoJourneysFragment在第 17 行檢查您的代碼。例外堆疊跟蹤中的行
java.lang.NullPointerException at fragment.GoodInfoJourneysFragment.(GoodInfoJourneysFragment.kt:17)
說你有一些你嘗試使用的物件,但在使用之前它沒有被實體化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395219.html
標籤:安卓 科特林 android-fragments 导航 kotlin 协程
上一篇:用X個變數計算
下一篇:使用navArgs將Fragment轉換為DialogFragment,如何從Fragment類外部導航到DialogFragment
