提问人:Sparsh Dutta 提问时间:9/7/2021 更新时间:9/7/2021 访问量:390
在 AnimatedNavHost (Jetpack Compose) 中放置超过 28 个“可组合”元素时,应用崩溃
App crashes on putting more than 28 'composable' element inside AnimatedNavHost (Jetpack Compose)
问:
我的应用是一个单一的活动应用,具有由可组合项表示的不同屏幕。我正在使用导航组件来处理屏幕导航。
我的导航组件将 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)
我该如何解决这个问题?
尝试了很多事情,但无法解决。 此外,似乎没有任何关于此的在线信息。
请帮忙!
答:
1赞
Gabriele Mariotti
9/7/2021
#1
本期报道。
RelNote:“使用具有 13 或 29 个目的地的图形进行调用时,将不再存在。
ArrayIndexOutOfBoundsException
setGraph
它应该用导航 2.4.0-alpha08
修复
评论
0赞
Sparsh Dutta
9/9/2021
现在我得到java.util.ArrayList无法转换为java.util.Set
1赞
Gabriele Mariotti
9/9/2021
@SparshDutta我认为这是一个完全不同的问题。
0赞
Sparsh Dutta
9/9/2021
使用“NavHost”而不是 AnimatedNavHost 时不会发生这种情况
1赞
Gabriele Mariotti
9/9/2021
@SparshDutta好的,但你的问题和我的回答是关于.这是另一个问题。ArrayIndexOutOfBoundsException: length=29; index=29
0赞
EpicPandaForce
2/15/2022
@SparshDutta这是 Accompanist 中的错误,而不是 Navigation-Compose 中的错误。
评论