google / accompanist

A collection of extension libraries for Jetpack Compose
https://google.github.io/accompanist
Apache License 2.0
7.43k stars 598 forks source link

[Navigation Animation] java.util.NoSuchElementException: ArrayDeque is empty #1585

Closed muhfiz closed 1 year ago

muhfiz commented 1 year ago

Description App Crashing when navigate - used version: 0.31.0-alpha, compose version: 1.4.0

Steps to reproduce

Expected behavior Not crash

Additional context

And when i change the MyNavigator class like this

class MyNavigation(navController: NavHostController) {

    val navigateToStart: () -> Unit = {
        navController.navigate(Destinations.START_ROUTE) {
            popUpTo(Destinations.START_ROUTE)
            launchSingleTop = true
        }
    }

    val navigateToAnother: () -> Unit = {
        navController.navigate(Destinations.ANOTHER_ROUTE) {
            popUpTo(Destinations.START_ROUTE)
            launchSingleTop = true
        }
    }
}

it works just fine and even more just change the navigateToStart like this

    val navigateToStart: () -> Unit = {
        navController.navigate(Destinations.START_ROUTE) {
            popUpTo(Destinations.START_ROUTE)
            launchSingleTop = true
        }
    }

will work too

Error produced

java.util.NoSuchElementException: ArrayDeque is empty.
at kotlin.collections.ArrayDeque.removeLast(ArrayDeque.kt:163)
at androidx.navigation.NavController.launchSingleTopInternal(NavController.kt:1848)
at androidx.navigation.NavController.navigate(NavController.kt:1809)
at androidx.navigation.NavController.navigate(NavController.kt:1772)
at androidx.navigation.NavController.navigate(NavController.kt:2173)
at androidx.navigation.NavController.navigate$default(NavController.kt:2168)
at androidx.navigation.NavController.navigate(NavController.kt:2153)
at mpl.bot.ui.MplBotNavigation$navigateToHome$1.invoke(MyNavigation.kt:12)
at mpl.bot.ui.MplBotNavigation$navigateToHome$1.invoke(MyNavigation.kt:11)
muhfiz commented 1 year ago

I think the problem in compose version, my bad :(