gpt4 book ai didi

androidx.navigation.NavGraph 无法转换为 androidx.navigation.compose.ComposeNavigator$Destination

转载 作者:行者123 更新时间:2023-12-04 11:09:15 30 4
gpt4 key购买 nike

更新导航组合依赖后2.4.0-alpha03 2.4.0-alpha05 在尝试在可组合屏幕之间导航(例如从 taskComposable 导航到 listComposable 屏幕)后,我遇到了这个奇怪的错误。这是我的代码的一部分。
主要 Activity :

@AndroidEntryPoint
class MainActivity : ComponentActivity() {

private lateinit var navController: NavHostController

@ExperimentalAnimationApi
@ExperimentalMaterialApi
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyComposeDemoTheme {
navController = rememberNavController()
SetupNavigation(
navController = navController
)
}
}
}

}
设置导航:
@ExperimentalAnimationApi
@ExperimentalMaterialApi
@Composable
fun SetupNavigation(
navController: NavHostController
) {
val screen = remember(navController) { Screens(navController) }

NavHost(
navController = navController,
startDestination = "list/{action}"
) {
listComposable(
navigateToTaskScreen = screen.task
)
taskComposable(
navigateToListScreen = screen.list
)
}
}
屏幕:
class Screens(navController: NavHostController) {
val list: (Action) -> Unit = { action ->
navController.navigate("list/${action.name}"){
popUpTo(LIST_SCREEN) { inclusive = true }
}
}
val task: (Int) -> Unit = { taskId ->
navController.navigate("task/$taskId")
}
}
任务可组合
fun NavGraphBuilder.taskComposable(
navigateToListScreen: (Action) -> Unit
) {
composable(
route = TASK_SCREEN,
arguments = listOf(navArgument(TASK_ID_ARGUMENT_KEY) {
type = NavType.IntType
})
) {
TaskScreen(
navigateToListScreen = navigateToListScreen
)
}
}
错误:

Process: com.example.mycomposedemo, PID: 2413java.lang.ClassCastException: androidx.navigation.NavGraph cannot be cast to androidx.navigation.compose.ComposeNavigator$Destinationat androidx.navigation.compose.NavHostKt$NavHost$6$1.invoke(NavHost.kt:146)at androidx.navigation.compose.NavHostKt$NavHost$6$1.invoke(NavHost.kt:145)at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:215)at androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:84)at androidx.navigation.compose.NavBackStackEntryProviderKt.SaveableStateProvider(NavBackStackEntryProvider.kt:59)at androidx.navigation.compose.NavBackStackEntryProviderKt.access$SaveableStateProvider(NavBackStackEntryProvider.kt:1)at androidx.navigation.compose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:51)at androidx.navigation.compose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:50)at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:215)at androidx.navigation.compose.NavBackStackEntryProviderKt.LocalOwnersProvider(NavBackStackEntryProvider.kt:46)at androidx.navigation.compose.NavHostKt$NavHost$6.invoke(NavHost.kt:145)at androidx.navigation.compose.NavHostKt$NavHost$6.invoke(NavHost.kt:144)at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:116)at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)at androidx.compose.animation.CrossfadeKt$Crossfade$1$1.invoke(Crossfade.kt:74)at androidx.compose.animation.CrossfadeKt$Crossfade$1$1.invoke(Crossfade.kt:69)at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)at androidx.compose.animation.CrossfadeKt.Crossfade(Crossfade.kt:86)at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:144)at androidx.navigation.compose.NavHostKt$NavHost$7.invoke(UnknownSource:13)at androidx.navigation.compose.NavHostKt$NavHost$7.invoke(UnknownSource:10)at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:140)at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2156)at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2399)at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:2580)at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:2573)at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(SnapshotState.kt:540)at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:2566)at androidx.compose.runtime.ComposerImpl.recompose$runtime_release(Composer.kt:2542)at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:613)at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:764)at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:103)at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:447)at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:416)at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:34)at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.android.kt:109)2021-07-29 10:00:14.416 2413-2413/com.example.mycomposedemoE/AndroidRuntime: atandroidx.compose.ui.platform.AndroidUiDispatcher.access$performFrameDispatch(AndroidUiDispatcher.android.kt:41)at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:69)at android.view.Choreographer$CallbackRecord.run(Choreographer.java:964)at android.view.Choreographer.doCallbacks(Choreographer.java:790)at android.view.Choreographer.doFrame(Choreographer.java:721)at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)at android.os.Handler.handleCallback(Handler.java:883)at android.os.Handler.dispatchMessage(Handler.java:100)at android.os.Looper.loop(Looper.java:214)at android.app.ActivityThread.main(ActivityThread.java:7356)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

最佳答案

这是一个内部错误,将在 Navigation 2.4.0-alpha06 版本中修复。 @headsvk 分享了问题链接:https://issuetracker.google.com/issues/194301889

关于androidx.navigation.NavGraph 无法转换为 androidx.navigation.compose.ComposeNavigator$Destination,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68572351/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com