Status Update
Comments
il...@google.com <il...@google.com> #2
Oh I forgot to mention that I thought it might be connected to this issue:
ke...@gmail.com <ke...@gmail.com> #3
Please provide a minimal sample project along with the minimal steps to recreate the issue in the project.
il...@google.com <il...@google.com> #4
Sorry for the delay. I got a working example here:
I poked into it a little bit and it seems to be connected to
Steps to reproduce:
- Navigate from Second Fragment to Child nav graph (with non-nullable parameters).
- Navigate to Third fragment using SafeArgs and the app crashes.
Crash log:
Process: cz.dels.issues, PID: 1743
java.lang.NullPointerException: null cannot be cast to non-null type kotlin.Long
at androidx.navigation.NavType$Companion$LongType$1.get(NavType.kt:352)
at androidx.navigation.NavType$Companion$LongType$1.get(NavType.kt:342)
at androidx.navigation.NavArgument.verify(NavArgument.kt:76)
at androidx.navigation.NavDestination.addInDefaultArgs(NavDestination.kt:502)
at androidx.navigation.NavController.addEntryToBackStack(NavController.kt:1865)
at androidx.navigation.NavController.addEntryToBackStack$default(NavController.kt:1813)
at androidx.navigation.NavController$navigate$4.invoke(NavController.kt:1721)
at androidx.navigation.NavController$navigate$4.invoke(NavController.kt:1719)
at androidx.navigation.NavController$NavControllerNavigatorState.push(NavController.kt:287)
at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.kt:246)
at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.kt:162)
at androidx.navigation.NavController.navigateInternal(NavController.kt:260)
at androidx.navigation.NavController.navigate(NavController.kt:1719)
at androidx.navigation.NavController.navigate(NavController.kt:1545)
at androidx.navigation.NavController.navigate(NavController.kt:1472)
at androidx.navigation.NavController.navigate(NavController.kt:1930)
at cz.dels.issues.SecondFragment.onViewCreated$lambda-0(SecondFragment.kt:38)
at cz.dels.issues.SecondFragment.$r8$lambda$XDYnOS_cYrafiNQ5rcCu1WCn0IE(Unknown Source:0)
at cz.dels.issues.SecondFragment$$ExternalSyntheticLambda0.onClick(Unknown Source:2)
Note: If in step 2 SaveArgs is not used then navigation works correctly. More information is here:
sv...@gmail.com <sv...@gmail.com> #5
Ups a typo: Navigate from Second First Fragment to Child nav graph (with non-nullable parameters).
Note: sorry for the spam but I am not able to edit my own comment.
il...@google.com <il...@google.com> #6
This has been fixed and will be available in navigation 2.6.0-alpha08
f....@gmail.com <f....@gmail.com> #7
Branch: androidx-main
commit 6b358154b794a0456b089ac8e548bfb830dd6c22
Author: Clara Fok <clarafok@google.com>
Date: Tue Mar 14 17:56:12 2023
Fix missing non-nullable arg when rebuilding hierarchy
When navigating with NavDirections, args is populated with an empty bundle. This causes issue when we rebuild parent hierarchy while adding a new entry to NavBackStack. If the Entry being rebuilt contains a non-nullalbe arg, i.e. Long, this empty bundle will cause an exception.
Test: ./gradlew navigation:navigation-runtime:cC
Bug: 249988437
Change-Id: I5c8ce739ad9a3428c8a8de13eae391bfff0db5df
M navigation/navigation-runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
M navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.kt
f....@gmail.com <f....@gmail.com> #8
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.navigation:navigation-runtime:2.6.0-alpha08
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #9
Branch: androidx-main
commit 95d95a4c54474fc973eebd775ff953f1a2f54c4a
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Jun 08 14:06:02 2022
Fix crash in NavHost when fast switching between destinations
There is a currently an error when combining Crossfade with
visibleEntries and fast switching between bottom nav items, where when
going from item 1, to item 2, and back to item 1` before the transition
completes.
Crossfade currently disposes whenever the lastEntry changes, in this
case the old item 1 is not equal to the new item 1` and this causes the
visibleEntries which included item 2 to be disposed when the old item 1
to item 2 transition completes, but the item 2 to item 1` transition is
still going and when that attempts to retrieve item 2, it fails cause it
has already been marked as complete.
We need to make it so that visibleEntries are only marked as complete
when crossfade is being disposed.
RelNote: "Fixed a crash caused by fast switching between bottom
destinations when using the Navigation Compose `NavHost`."
Test: tested in sample app
Bug: 234054916
Change-Id: I3979acdda0b6715fcf96bb1948ad6f5e6ba87388
M navigation/navigation-compose/src/main/java/androidx/navigation/compose/NavHost.kt
jb...@google.com <jb...@google.com> #10
This has been fixed internally and will be in the Navigation 2.5.0-rc02
release.
am...@gmail.com <am...@gmail.com> #11
I'm having Navigation 2.5.0-rc02
and still sometimes getting NoSuchElementException
crash.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.linenapp.android.debug, PID: 9122
java.util.NoSuchElementException: List contains no element matching the predicate.
at com.google.accompanist.navigation.animation.AnimatedNavHostKt$AnimatedNavHost$9.invoke(AnimatedNavHost.kt:249)
at com.google.accompanist.navigation.animation.AnimatedNavHostKt$AnimatedNavHost$9.invoke(AnimatedNavHost.kt:201)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:135)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.animation.AnimatedContentKt$AnimatedContent$5$1$4.invoke(AnimatedContent.kt:658)
at androidx.compose.animation.AnimatedContentKt$AnimatedContent$5$1$4.invoke(AnimatedContent.kt:648)
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.AnimatedVisibilityKt.AnimatedEnterExitImpl(AnimatedVisibility.kt:939)
at androidx.compose.animation.AnimatedVisibilityKt.AnimatedVisibility(AnimatedVisibility.kt:607)
at androidx.compose.animation.AnimatedContentKt$AnimatedContent$5$1.invoke(AnimatedContent.kt:638)
at androidx.compose.animation.AnimatedContentKt$AnimatedContent$5$1.invoke(AnimatedContent.kt:625)
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.AnimatedContentKt.AnimatedContent(AnimatedContent.kt:671)
at com.google.accompanist.navigation.animation.AnimatedNavHostKt.AnimatedNavHost(AnimatedNavHost.kt:196)
at com.google.accompanist.navigation.animation.AnimatedNavHostKt$AnimatedNavHost$11.invoke(Unknown Source:23)
at com.google.accompanist.navigation.animation.AnimatedNavHostKt$AnimatedNavHost$11.invoke(Unknown Source:10)
at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:142)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2351)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2618)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3205)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3183)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:252)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source:1)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3183)
at androidx.compose.runtime.ComposerImpl.recompose$runtime_release(Composer.kt:3148)
at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:739)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:876)
at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:107)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:485)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:454)
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)
at androidx.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:1056)
at android.view.Choreographer.doCallbacks(Choreographer.java:880)
at android.view.Choreographer.doFrame(Choreographer.java:809)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1043)
at android.os.Handler.handleCallback(Handler.java:938)
E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:7889)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:600)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)
Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [androidx.compose.runtime.PausableMonotonicFrameClock@e75298d, androidx.compose.ui.platform.MotionDurationScaleImpl@a99d742, StandaloneCoroutine{Cancelling}@222f353, AndroidUiDispatcher@4371490]
Seems, it maybe related to the cases when startDestination
parameter of the AnimatedNavHost
is dynamically changed in runtime and navController is also targeted to another destination (same as startDestination
).
po...@gmail.com <po...@gmail.com> #12
This is still an issue with the AnimatedNavHost. It might have been fixed in NavHost, but not there. Could you please reopen it?
ja...@gmail.com <ja...@gmail.com> #13
I'm on 2.5.0 and still having the same issue. Here's a stacktrace from this morning.
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHostKt.java:5)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambdaImpl.java:48)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambdaImpl.java:8)
at androidx.compose.animation.CrossfadeKt$Crossfade$4$1.invoke(CrossfadeKt.java:22)
at androidx.compose.runtime.internal.ComposableLambdaImpl.P(ComposableLambdaImpl.java:56)
at androidx.compose.animation.CrossfadeKt.Crossfade(CrossfadeKt.java:20)
at androidx.compose.animation.CrossfadeKt.Crossfade(CrossfadeKt.java:176)
at androidx.navigation.compose.NavHostKt.NavHost(NavHostKt.java:126)
at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(NavHostKt.java:1)
at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.java:23)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(ComposerImpl.java:23)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(ComposerImpl.java:15)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(ComposerImpl.java:15)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(ComposerImpl.java:15)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(SnapshotStateKt__DerivedStateKt.java:4)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(SnapshotStateKt.java:4)
at androidx.compose.runtime.ComposerImpl.doCompose(ComposerImpl.java:12)
at androidx.compose.runtime.ComposerImpl.recompose$runtime_release(ComposerImpl.java:2)
at androidx.compose.runtime.CompositionImpl.recompose(CompositionImpl.java:2)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.java:5)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.java:29)
at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.java:8)
at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.java:3)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.java:3)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1008)
at android.view.Choreographer.doCallbacks(Choreographer.java:809)
at android.view.Choreographer.doFrame(Choreographer.java:740)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:995)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8653)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
ha...@gmail.com <ha...@gmail.com> #14
I also got the same error with latest compose 1.2.0-rc03
and navigation 2.5.0
.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mystore.client, PID: 4525
java.util.NoSuchElementException: List contains no element matching the predicate.
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:181)
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:141)
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$4$1.invoke(Crossfade.kt:115)
at androidx.compose.animation.CrossfadeKt$Crossfade$4$1.invoke(Crossfade.kt:110)
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:124)
at androidx.compose.animation.CrossfadeKt.Crossfade(Crossfade.kt:55)
at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:141)
at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:67)
at com.mystore.client.ui.navigation.MyStoreNavigationKt.MyStoreNavigation(MyStoreNavigation.kt:83)
at com.mystore.client.ui.navigation.MyStoreNavigationKt$MyStoreNavigation$3.invoke(Unknown Source:15)
at com.mystore.client.ui.navigation.MyStoreNavigationKt$MyStoreNavigation$3.invoke(Unknown Source:10)
at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:145)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2351)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2618)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3205)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3183)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:252)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source:1)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3183)
at androidx.compose.runtime.ComposerImpl.recompose$runtime_release(Composer.kt:3148)
at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:746)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:876)
at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:107)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:485)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:454)
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)
at androidx.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(Unknown Source:12)
at android.view.Choreographer.doCallbacks(Unknown Source:84)
at android.view.Choreographer.doFrame(Unknown Source:324)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Unknown Source:11)
at android.os.Handler.handleCallback(Unknown Source:2)
at android.os.Handler.dispatchMessage(Unknown Source:4)
at android.os.Looper.loopOnce(Unknown Source:176)
at android.os.Looper.loop(Unknown Source:76)
at android.app.ActivityThread.main(Unknown Source:138)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(Unknown Source:11)
at com.android.internal.os.ZygoteInit.main(Unknown Source:306)
jb...@google.com <jb...@google.com> #15
Please file an issue against NavHost
.
ha...@gmail.com <ha...@gmail.com> #16
I was using NavHost
, not AnimatedNavHost
. However, I found that this issue was occurring due to the fact that NavHost
was recomposing every time instead of single time. I resolved that issue by putting startDestionation
variable in LaunchedEffect
il...@google.com <il...@google.com> #17
Re
ha...@gmail.com <ha...@gmail.com> #18
Actually, it was not bug and a mistake from my side. I resolved it. Thanks.
kr...@gmail.com <kr...@gmail.com> #19
I followed a tutorial from Stevdza-San on youtube that perfectly reproduces this issue.
The tutorial is about a welcome screen shown only the first time you start the app. So the startDestination gets decided at run time.
The navigation-compose dependency is now on 2.5.0.
If you revert back to -alpha02 the app works as expected.
kr...@gmail.com <kr...@gmail.com> #20
On -alpha02 and -alpha03 it still works, it breaks on -alpha04 and up.
jb...@google.com <jb...@google.com> #21
That is a different bug with a similar result. Please a file a new bug with your sample project.
it...@gmail.com <it...@gmail.com> #22
jb...@google.com <jb...@google.com> #23
That was fixed in accompanists by
es...@gmail.com <es...@gmail.com> #24
I observe this defect while using...
- Compose 1.3.0-rc02
- Navigation-Compose 2.5.1
My project does not depend on the Accompanist navigation artifact.
2022-08-11 19:46:19.991 20296-20296/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.es0329.archetype.dev, PID: 20296
java.util.NoSuchElementException: List contains no element matching the predicate.
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:181)
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:141)
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$4$1.invoke(Crossfade.kt:115)
at androidx.compose.animation.CrossfadeKt$Crossfade$4$1.invoke(Crossfade.kt:110)
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:124)
at androidx.compose.animation.CrossfadeKt.Crossfade(Crossfade.kt:55)
at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:141)
at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:13)
at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:10)
at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:145)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2363)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2630)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3217)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3195)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:336)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source:1)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3195)
at androidx.compose.runtime.ComposerImpl.recompose$runtime_release(Composer.kt:3160)
at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:748)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:876)
at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:107)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:485)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:454)
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)
at androidx.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:1035)
at android.view.Choreographer.doCallbacks(Choreographer.java:845)
at android.view.Choreographer.doFrame(Choreographer.java:775)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [androidx.compose.runtime.PausableMonotonicFrameClock@da3b3d0, androidx.compose.ui.platform.MotionDurationScaleImpl@25d1fc9, StandaloneCoroutine{Cancelling}@fcbf6ce, AndroidUiDispatcher@5f09ef]
ch...@gmail.com <ch...@gmail.com> #25
Compose 1.2.0
Navigation-Compose 2.5.1
java.util.NoSuchElementException: List contains no element matching the predicate.
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:181)
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:141)
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$4$1.invoke(Crossfade.kt:115)
at androidx.compose.animation.CrossfadeKt$Crossfade$4$1.invoke(Crossfade.kt:110)
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:124)
at androidx.compose.animation.CrossfadeKt.Crossfade(Crossfade.kt:55)
at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:141)
at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:13)
at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:10)
at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:145)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2351)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2618)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3205)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3183)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:252)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source:1)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3183)
at androidx.compose.runtime.ComposerImpl.recompose$runtime_release(Composer.kt:3148)
at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:746)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:876)
at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:107)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:485)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:454)
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)
at androidx.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:970)
at android.view.Choreographer.doCallbacks(Choreographer.java:796)
at android.view.Choreographer.doFrame(Choreographer.java:727)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [androidx.compose.runtime.PausableMonotonicFrameClock@d5b2171, androidx.compose.ui.platform.MotionDurationScaleImpl@263db56, StandaloneCoroutine{Cancelling}@bdcc7d7, AndroidUiDispatcher@92ec8c4]
jb...@google.com <jb...@google.com> #26
Please file a new issue with a minimal sample project that reproduces the issue.
na...@google.com <na...@google.com> #27
This bug was linked in a change in the following release(s):
androidx.navigation:navigation-compose:2.6.0-alpha01
mo...@gmail.com <mo...@gmail.com> #28
2022-09-13 20:23:48.665 4790-4790/com.example.diwaanka2022 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.diwaanka2022, PID: 4790
java.util.NoSuchElementException: List contains no element matching the predicate.
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:181)
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:141)
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$4$1.invoke(Crossfade.kt:115)
at androidx.compose.animation.CrossfadeKt$Crossfade$4$1.invoke(Crossfade.kt:110)
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:124)
at androidx.compose.animation.CrossfadeKt.Crossfade(Crossfade.kt:55)
at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:141)
at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:13)
at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:10)
at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:145)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2351)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2618)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3205)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3183)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:252)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source:1)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3183)
at androidx.compose.runtime.ComposerImpl.recompose$runtime_release(Composer.kt:3148)
at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:746)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:876)
at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:107)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:485)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:454)
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)
at androidx.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:970)
at android.view.Choreographer.doCallbacks(Choreographer.java:796)
at android.view.Choreographer.doFrame(Choreographer.java:727)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [androidx.compose.runtime.PausableMonotonicFrameClock@b66f35d, androidx.compose.ui.platform.MotionDurationScaleImpl@fea24d2, StandaloneCoroutine{Cancelling}@a55d9a3, AndroidUiDispatcher@5ef84a0]
il...@google.com <il...@google.com> #29
Re
ph...@gmail.com <ph...@gmail.com> #30
I'm also facing the same issue on navigation-compose 2.6.0-alpha01. This stack trace is from Google Play console and happens 1-2 times a day. I can't reproduce it locally.
Exception java.util.NoSuchElementException: List contains no element matching the predicate.
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke (NavHostKt.java:5)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke (ComposableLambdaImpl.java)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke (ComposableLambdaImpl.java)
at androidx.compose.animation.CrossfadeKt$Crossfade$5$1.invoke (CrossfadeKt.java:19)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke (ComposableLambdaImpl.java:1)
at androidx.compose.animation.CrossfadeKt.Crossfade (CrossfadeKt.java:18)
at androidx.compose.animation.CrossfadeKt.Crossfade (CrossfadeKt.java)
at androidx.navigation.compose.NavHostKt.NavHost (NavHostKt.java:105)
at androidx.navigation.compose.NavHostKt$NavHost$5.invoke (NavHostKt.java:1)
at androidx.compose.runtime.RecomposeScopeImpl.compose (RecomposeScopeImpl.java:23)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd (ComposerImpl.java:23)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup (ComposerImpl.java:15)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke (ComposerImpl.java:15)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke (ComposerImpl.java:15)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations (SnapshotStateKt__DerivedStateKt.java:3)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations (SnapshotStateKt.java:3)
at androidx.compose.runtime.ComposerImpl.doCompose (ComposerImpl.java:12)
at androidx.compose.runtime.ComposerImpl.recompose$runtime_release (ComposerImpl.java:2)
at androidx.compose.runtime.CompositionImpl.recompose (CompositionImpl.java:2)
at androidx.compose.runtime.Recomposer.performRecompose (Recomposer.java:5)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke (Recomposer.java:27)
at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame (AndroidUiFrameClock.java)
at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch (AndroidUiDispatcher.java:3)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame (AndroidUiDispatcher.java:3)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1008)
at android.view.Choreographer.doCallbacks (Choreographer.java:809)
at android.view.Choreographer.doFrame (Choreographer.java:740)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:995)
at android.os.Handler.handleCallback (Handler.java:938)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:246)
at android.app.ActivityThread.main (ActivityThread.java:8653)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
[Deleted User] <[Deleted User]> #31
ri...@googlemail.com <ri...@googlemail.com> #32
=> Bug occurs here: implementation "androidx.navigation:navigation-compose:2.5.0-alpha04"
We also use similiar code as in this example and it can be reproduced here:
or...@gmail.com <or...@gmail.com> #33
ge...@gmail.com <ge...@gmail.com> #34
"From Navigation 2.5.3: NavHost will no longer cause a NoSuchElementException when there is no destination available for the Crossfade to compose. It will now just skip the composition. (Ieb46e,
Description
Component used: Navigation Version used: 2.5.0-alpha04, 2.5.0-beta01, and 2.5.0-rc01
The crash only happens in AndroidTest. Running the app normally seems fine from what I can tell so far. If I use
androidx.navigation:navigation-compose:2.5.0-alpha03
or any earlier release there are no issues when running the test or app. So,2.4.2
also works fine.The main testing libraries are. I will try and create a Sample project soon. espresso: 3.5.0-alpha06 compose: "1.2.0-beta02"