Lukasz Kalnik
07/21/2025, 11:32 AMsetContent {
val navigateToHomeScreen by viewModel.navigateToHomeScreen.collectAsStateWithLifecycle()
if (navigateToHomeScreen) {
navController.navigate(HOME) {
popUpTo(LOGIN) { inclusive = true }
}
}
However when I close the app with the back button and then reopen, it crashes with
java.lang.IllegalArgumentException: Cannot navigate to shoppingSessions. Navigation graph has not been set for NavController androidx.navigation.internal.NavControllerImpl
Nitesh Singh
07/21/2025, 11:34 AMLukasz Kalnik
07/21/2025, 11:35 AMLukasz Kalnik
07/21/2025, 11:37 AMNavHost(navController, startDestination = LOGIN) {
composable(HOME) {
HomeScreen( /* ... */)
}
composable(LOGIN) {
LoginScreen( /* ... */)
}
}
It uses the same navController
instance, which is remembered beforehand.Lukasz Kalnik
07/21/2025, 11:37 AMLukasz Kalnik
07/21/2025, 11:37 AMSideEffect
, but then it doesn't navigate at all.Nitesh Singh
07/21/2025, 11:41 AMNavController
before navigating anywhere.Nitesh Singh
07/21/2025, 11:41 AMNavHost
is set before you trigger any navigationNitesh Singh
07/21/2025, 11:42 AMNitesh Singh
07/21/2025, 11:42 AMNitesh Singh
07/21/2025, 11:43 AMnavigate()
before NavHost
is renderedNitesh Singh
07/21/2025, 11:44 AMLukasz Kalnik
07/21/2025, 11:49 AMLukasz Kalnik
07/21/2025, 11:50 AMcomposable
Lukasz Kalnik
07/21/2025, 11:50 AMLukasz Kalnik
07/21/2025, 11:52 AMsetContent {
val navController = rememberNavController()
val navigateToHomeScreen by viewModel.navigateToHomeScreen.collectAsStateWithLifecycle()
if (navigateToHomeScreen) {
viewModel.onNavigatedToHomeScreen() // resets the state
navController.navigate(HOME) {
popUpTo(LOGIN) { inclusive = true }
}
}
NavHost(navController, startDestination = LOGIN) {
composable(HOME) {
HomeScreen( /* ... */)
}
composable(LOGIN) {
LoginScreen( /* ... */)
}
}
}
Nitesh Singh
07/21/2025, 11:56 AMLukasz Kalnik
07/21/2025, 11:56 AMLukasz Kalnik
07/21/2025, 11:56 AMsetContent
MethodLukasz Kalnik
07/21/2025, 11:57 AMonCreate()
Nitesh Singh
07/21/2025, 11:57 AMLukasz Kalnik
07/21/2025, 11:57 AMNitesh Singh
07/21/2025, 12:01 PMNitesh Singh
07/21/2025, 12:02 PMLukasz Kalnik
07/21/2025, 12:03 PMLukasz Kalnik
07/21/2025, 12:05 PMLukasz Kalnik
07/21/2025, 12:05 PMlaunchSingleTop = true
inside the navigate()
didn't helpNitesh Singh
07/21/2025, 12:06 PMLukasz Kalnik
07/21/2025, 12:06 PMNitesh Singh
07/21/2025, 12:08 PMNitesh Singh
07/21/2025, 12:08 PMLukasz Kalnik
07/21/2025, 12:10 PMNitesh Singh
07/21/2025, 12:11 PMLukasz Kalnik
07/21/2025, 12:12 PMLukasz Kalnik
07/21/2025, 12:12 PMpopUpTo(LOGIN) { inclusive = true }
Nitesh Singh
07/21/2025, 12:16 PMLukasz Kalnik
07/21/2025, 12:17 PMNitesh Singh
07/21/2025, 12:17 PMLukasz Kalnik
07/21/2025, 12:17 PMLukasz Kalnik
07/21/2025, 12:17 PMLukasz Kalnik
07/21/2025, 12:18 PMLukasz Kalnik
07/21/2025, 12:18 PMNitesh Singh
07/21/2025, 12:23 PMLukasz Kalnik
07/21/2025, 12:23 PMLukasz Kalnik
07/21/2025, 12:23 PMNitesh Singh
07/21/2025, 12:27 PMNitesh Singh
07/21/2025, 12:28 PMNitesh Singh
07/21/2025, 12:28 PMLukasz Kalnik
07/21/2025, 12:29 PMif (navigateToShoppingSessions) {
homeViewModel.onNavigatedToShoppingSessions()
navController.navigate(NAV_DESTINATION_SHOPPING_SESSIONS) {
popUpTo(NAV_DESTINATION_AUTO_LOGIN) { inclusive = true }
}
}
Nitesh Singh
07/21/2025, 12:29 PMLukasz Kalnik
07/21/2025, 12:29 PMLukasz Kalnik
07/21/2025, 12:29 PMLukasz Kalnik
07/21/2025, 12:29 PMNitesh Singh
07/21/2025, 12:29 PMNitesh Singh
07/21/2025, 12:30 PMLukasz Kalnik
07/21/2025, 12:30 PMNitesh Singh
07/21/2025, 12:30 PMLukasz Kalnik
07/21/2025, 12:30 PMNitesh Singh
07/21/2025, 12:31 PMLukasz Kalnik
07/21/2025, 12:31 PMLukasz Kalnik
07/21/2025, 12:31 PMNitesh Singh
07/21/2025, 12:33 PMNitesh Singh
07/21/2025, 12:35 PMNitesh Singh
07/21/2025, 12:35 PMLukasz Kalnik
07/21/2025, 12:37 PMLukasz Kalnik
07/21/2025, 12:37 PMLaunchedEffect(navigateToShoppingSessions) {
if (navigateToShoppingSessions && navController.currentDestination?.route != NAV_DESTINATION_SHOPPING_SESSIONS) {
homeViewModel.onNavigatedToShoppingSessions()
navController.navigate(NAV_DESTINATION_SHOPPING_SESSIONS) {
popUpTo(navController.graph.startDestinationId) { inclusive = true }
launchSingleTop = true
}
}
}
Lukasz Kalnik
07/21/2025, 12:38 PMNitesh Singh
07/21/2025, 12:42 PMNitesh Singh
07/21/2025, 12:53 PMLukasz Kalnik
07/21/2025, 12:53 PMLukasz Kalnik
07/21/2025, 12:53 PMLukasz Kalnik
07/21/2025, 12:53 PMNitesh Singh
07/21/2025, 12:58 PMLukasz Kalnik
07/21/2025, 12:59 PMNitesh Singh
07/21/2025, 12:59 PMLukasz Kalnik
07/21/2025, 1:49 PMHomeActivity
was missing the launchMode:singleTop
in manifest