Код: Выделить всё
Caused by: java.lang.IllegalArgumentException: No destination with route main_navigation is on the NavController's back stack. The current destination is null
Код: Выделить всё
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navController = (supportFragmentManager
.findFragmentById(R.id.nav_host_fragment) as NavHostFragment).navController
val graph = navController.createGraph(
startDestination = "MyFragment1", route = "main_navigation"
) {
fragment("MyFragment1") {
deepLink("fi://fragment1")
argument("testing") {
type = NavType.StringType
defaultValue = "hello"
}
}
navigation("MyFragment2", "included_graph") {
fragment("MyFragment2") {
deepLink("fi://fragment2")
argument("testing") {
type = NavType.StringType
nullable = true
}
}
}
}
navController.graph = graph
}
Код: Выделить всё
private val vm: Vm by navGraphViewModels("main_navigation")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
vm.someFunction()
}
Код: Выделить всё
Caused by: java.lang.IllegalArgumentException: No destination with route main_navigation is on the NavController's back stack. The current destination is null
at androidx.navigation.NavController.getBackStackEntry(NavController.kt:2472)
at com.example.testingnavigation.MyFragment1$special$$inlined$navGraphViewModels$default$1.invoke(NavGraphViewModelLazy.kt:209)
at com.example.testingnavigation.MyFragment1$special$$inlined$navGraphViewModels$default$1.invoke(NavGraphViewModelLazy.kt:208)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at androidx.navigation.NavGraphViewModelLazyKt.navGraphViewModels$lambda-3(NavGraphViewModelLazy.kt:208)
at androidx.navigation.NavGraphViewModelLazyKt.access$navGraphViewModels$lambda-3(NavGraphViewModelLazy.kt:1)
at com.example.testingnavigation.MyFragment1$special$$inlined$navGraphViewModels$default$4.invoke(NavGraphViewModelLazy.kt:217)
at com.example.testingnavigation.MyFragment1$special$$inlined$navGraphViewModels$default$4.invoke(NavGraphViewModelLazy.kt:214)
at androidx.lifecycle.ViewModelLazy.getValue(ViewModelLazy.kt:47)
at androidx.lifecycle.ViewModelLazy.getValue(ViewModelLazy.kt:35)
at com.example.testingnavigation.MyFragment1.getVm(MyFragment1.kt:26)
at com.example.testingnavigation.MyFragment1.onCreate(MyFragment1.kt:30)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:3094)
at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:504)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:268)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:122)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
at androidx.fragment.app.FragmentManager.dispatchCreate(FragmentManager.java:2941)
at androidx.fragment.app.Fragment.restoreChildFragmentState(Fragment.java:1989)
at androidx.fragment.app.Fragment.onCreate(Fragment.java:1967)
at androidx.navigation.fragment.NavHostFragment.onCreate(NavHostFragment.kt:163)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:3094)
at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:504)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:268)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
at androidx.fragment.app.FragmentManager.dispatchCreate(FragmentManager.java:2941)
14:03:56.302 E at androidx.fragment.app.FragmentController.dispatchCreate(FragmentController.java:252)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:219)
at com.example.testingnavigation.MainActivity.onCreate(MainActivity.kt:17)
at android.app.Activity.performCreate(Activity.java:8119)
at android.app.Activity.performCreate(Activity.java:8103)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1359)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3713)
... 11 more
- Откройте приложение и переведите его в фоновый режим
- затем используйте эту команду adbshell am kill
- перезапустите приложение из значка приложения.
Как правильно использовать навигацию через Kotlin DSL?< /п>
Подробнее здесь: https://stackoverflow.com/questions/782 ... sl-the-app