当在 中调用我的可组合项时NavGraph,我遇到问题,它重复 3 次,有时甚至更多次。我查看了拨打电话的位置,但没有看到任何循环或其他东西。
NavGraph
fun NavGraphBuilder.addScheduleDetails(
navController: NavHostController,
userDataViewModel: UserDataViewModel,
titulos: MutableState<String>,
datosViewModel: DatosViewModel,
){
val animationState = mutableStateOf(true)
composable(route = MainDestinations.SCHEDULE_DETAILS_ROUTE+"/{${NavArguments.NOMBRE_HORARIO}}")
{backStackEntry ->
Log.w("Call", "ScheduleDetails")
titulos.value = backStackEntry.arguments?.getString(NavArguments.NOMBRE_HORARIO)!!+" "
val actions = MainActions(navController = navController)
DetallesHorarioScreen(
nombreHorario = backStackEntry.arguments?.getString(NavArguments.NOMBRE_HORARIO),
userDataViewModel = userDataViewModel,
onNavToAddSubject = actions.navigateToAgregarMateria,
datosViewModel = datosViewModel,
animationState = animationState
)
}
}
Run Code Online (Sandbox Code Playgroud)
从日志打印
2022-01-06 19:57:01.548 30533-30533/horarios W/Call: ScheduleDetails
2022-01-06 19:57:01.613 30533-30533/horarios W/Call: ScheduleDetails
2022-01-06 19:57:01.987 30533-30533/horarios W/Call: ScheduleDetails
Run Code Online (Sandbox Code Playgroud)
拨电至composable(route = MainDestinations.SCHEDULE_DETAILS_ROUTE ...)
Card( …Run Code Online (Sandbox Code Playgroud) 我开始使用 Android Jetpack Compose。我安装了 Canary,当我创建一个 Empty Compose Activity 并在没有更改的情况下运行它时(你好 Android!)我有下一个错误:
Process: com.example.jetpacktest2, PID: 24788
java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
at androidx.lifecycle.FullLifecycleObserverAdapter.onStateChanged(FullLifecycleObserverAdapter.java:36)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:354)
at androidx.lifecycle.LifecycleRegistry.addObserver(LifecycleRegistry.java:196)
at androidx.compose.ui.platform.AndroidComposeView.onAttachedToWindow(AndroidComposeView.android.kt:808)
at android.view.View.dispatchAttachedToWindow(View.java:19855)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3597)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3604)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3604)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3604)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3604)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2376)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1993)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8459)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1256)
at android.view.Choreographer.doCallbacks(Choreographer.java:995)
at android.view.Choreographer.doFrame(Choreographer.java:887)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1224)
at android.os.Handler.handleCallback(Handler.java:900)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8387)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
Run Code Online (Sandbox Code Playgroud)
我没有修改任何东西,它是Android创建的基本代码。任何帮助表示赞赏。
PS:我加载了在 Android Studio 上制作的其他代码(没有编写)并且它运行没有错误。