Status Update
Comments
ho...@gmail.com <ho...@gmail.com> #2
I have the same crash and the same case.
Have application level NavController and main screen with bottom navigation (I'm calling it BottomNavController)
When there is opened screen over MainScreen
and user clicks back - crash happen.
module: androidx.navigation:navigation-compose
version: 2.9.0-alpha05
UPD: issue was fixed in 2.9.0-alpha06
, release notes:
UPD2: 2.9.0-alpha06
produce another error(for the same use case):
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
at java.util.Objects.checkIndex(Objects.java:359)
at java.util.ArrayList.get(ArrayList.java:434)
at androidx.navigation.NavController.restoreState(NavController.android.kt:2769)
at androidx.navigation.compose.NavHostControllerKt$NavControllerSaver$2.invoke(NavHostController.kt:80)
at androidx.navigation.compose.NavHostControllerKt$NavControllerSaver$2.invoke(NavHostController.kt:78)
at androidx.compose.runtime.saveable.SaverKt$Saver$1.restore(Saver.kt:65)
at androidx.compose.runtime.saveable.RememberSaveableKt.rememberSaveable(RememberSaveable.kt:86)
at androidx.navigation.compose.NavHostControllerKt.rememberNavController(NavHostController.kt:59)
at com.whoppah.ui.main.BottomMenuControllerKt.rememberBottomMenuController(BottomMenuController.kt:15)
at com.whoppah.ui.main.MainScreenKt.MainScreen(MainScreen.kt:207)
at com.whoppah.ui.main.MainScreenKt.MainScreen(MainScreen.kt:152)
at com.whoppah.ui.main.MainScreenKt.MainScreen(MainScreen.kt:63)
ma...@gmail.com <ma...@gmail.com> #3
now in 2.9.0-alpha06 this problem happen.
Process: com.ainoapp.aino, PID: 18585 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.get(ArrayList.java:437) at androidx.navigation.NavController.restoreState(NavController.android.kt:2769) at androidx.navigation.compose.NavHostControllerKt$NavControllerSaver$2.invoke(NavHostController.kt:80) at androidx.navigation.compose.NavHostControllerKt$NavControllerSaver$2.invoke(NavHostController.kt:78) at androidx.compose.runtime.saveable.SaverKt$Saver$1.restore(Saver.kt:65) at androidx.compose.runtime.saveable.RememberSaveableKt.rememberSaveable(RememberSaveable.kt:86) at androidx.navigation.compose.NavHostControllerKt.rememberNavController(NavHostController.kt:59)
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-main
Author: Jeremy Woods <
Link:
Do not allow null values in backstackMap
Expand for full commit details
Do not allow null values in backstackMap
If the savedState for a destination is `null`, we don't have to save
that state into the backstackMap. We can keep an emptyString
instead and when we restore the state convert it back to null.
RelNote: "Fixed an issue where attempting to saveState with
non-inclusive pop would result in a null savedState that could cause a
crash on restoration."
Test: added test
Bug: 392112864
Bug: 395091644
Change-Id: I9f3e8d272db222041c7e611932e4c2b7b4fa50c1
Files:
- M
navigation/navigation-runtime/src/androidInstrumentedTest/kotlin/androidx/navigation/NavControllerTest.kt
- M
navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavController.android.kt
Hash: 8673b07089dc154e66fbf14f25b5db0f46fbd3b5
Date: Wed Feb 05 20:55:55 2025
jb...@google.com <jb...@google.com> #5
This has been fixed internally and will be available in the Navigation 2.8.8 release.
Description
Component used: Navigation Version used: 2.9.0-alpha05 Devices/Android versions reproduced on: 33
I have two nested navHostController mainNavController dashboardNavController
in dashboardNavHost when i switch between tabs with this code :
dashboardNavController.navigate(rout) { popUpTo(dashboardNavController.graph.startDestinationId) { saveState = true } launchSingleTop = true restoreState = true }
and then with mainNavController go to other composable screen, when popup back, i get the following error:
java.lang.IllegalStateException: The saved state value associated with the key 'android-support-nav:controller:backStackIds' is either null or not of the expected type. This might happen if the value was saved with a different type or if the saved state has been modified unexpectedly. at androidx.navigation.NavController.restoreState(NavController.android.kt:3697) at androidx.navigation.compose.NavHostControllerKt$NavControllerSaver$2.invoke(NavHostController.kt:80) at androidx.navigation.compose.NavHostControllerKt$NavControllerSaver$2.invoke(NavHostController.kt:78) at androidx.compose.runtime.saveable.SaverKt$Saver$1.restore(Saver.kt:65) at androidx.compose.runtime.saveable.RememberSaveableKt.rememberSaveable(RememberSaveable.kt:86) at androidx.navigation.compose.NavHostControllerKt.rememberNavController(NavHostController.kt:59)