0

我的应用程序是一个单一的活动应用程序,具有由可组合项表示的不同屏幕。我正在使用导航组件来处理屏幕导航。

我的导航组件具有 AnimatedNavHost 为:

AnimatedNavHost(
            navController = navController,
            startDestination = Constants.SPLASH,
            enterTransition = { initial, _ ->
                slideInHorizontally(initialOffsetX = { 1000 })

            },
            exitTransition = { _, target ->
                slideOutHorizontally(targetOffsetX = { -1000 })

            },
            popEnterTransition = { initial, _ ->

                slideInHorizontally(initialOffsetX = { -1000 })

            },

            popExitTransition = { _, target ->

                slideOutHorizontally(targetOffsetX = { 1000 })

            }

        ) {
            composable(Constants.SPLASH) {
                Splash(navController = navController)


            }
            composable(Constants.HIW) {

                LogoPage(
                    false,
                    true,
                    navController = navController
                ) { HowItWorks(navController = navController, false) }

.
.
.

//Other 26 'composable' elements
}

当我再添加 1 个“可组合”元素时,我的应用程序崩溃了,并且 logcat 说:

 java.lang.ArrayIndexOutOfBoundsException: length=29; index=29
        at androidx.collection.SparseArrayCompat.valueAt(SparseArrayCompat.java:379)
        at androidx.navigation.NavController.setGraph(NavController.kt:948)
        at androidx.navigation.NavController.setGraph(NavController.kt:95)
        at com.google.accompanist.navigation.animation.AnimatedNavHostKt.AnimatedNavHost(AnimatedNavHost.kt:146)
        at com.google.accompanist.navigation.animation.AnimatedNavHostKt.AnimatedNavHost(AnimatedNavHost.kt:85)

我该如何解决这个问题?

尝试了很多东西,但无法解决。此外,似乎没有任何关于此的在线信息。

请帮忙!

4

1 回答 1

1

本期报道。

ArrayIndexOutOfBoundsException RelNote:“当调用setGraph具有1329个目的地的图表时,将不再出现。”

它应该用导航修复2.4.0-alpha08

于 2021-09-07T12:06:33.337 回答