-
Notifications
You must be signed in to change notification settings - Fork 160
[Crash][v2.OssLicensesMenuActivity] Rapid double-tap on Up button leads to IllegalArgumentException #397
Copy link
Copy link
Open
Description
Describe the bug
Rapid double-tap on Up button leads to IllegalArgumentException: NavDisplay backstack cannot be empty.
To Reproduce
Steps to reproduce the behavior:
- Navigate to
v2.OssLicensesMenuActivity. - Select any license to open details.
- Rapidly double-tap the "Up" button in the TopAppBar.
Actual Result
App crashes on the second tap.
Expected behavior
The second tap should be ignored. The app should return to the previous screen without crashing.
Desktop (please complete the following information):
- Gradle version: 9.1.0
- Android Studio version: 2025.3.2
- Plugin name and version:
play-services-oss-licenses:17.4.0,oss-licenses-plugin:0.11.0
Additional context
Logcat
java.lang.IllegalArgumentException: NavDisplay backstack cannot be empty
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.NavDisplay(NavDisplay.kt:287)
at androidx.navigation3.ui.NavDisplayKt.NavDisplay(Unknown Source:1)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.NavDisplay$lambda$4$NavDisplayKt__NavDisplayKt(Unknown Source:38)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.$r8$lambda$P9Mf3Do1t4N-_9P4T8PgpKaFFzE(Unknown Source:0)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:201)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(ComposerImpl.kt:1690)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(ComposerImpl.kt:2026)
at androidx.compose.runtime.ComposerImpl.doCompose-aFTiNEg(ComposerImpl.kt:2659)
at androidx.compose.runtime.ComposerImpl.recompose-aFTiNEg$runtime(ComposerImpl.kt:2583)
at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:1080)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:1406)
at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:159)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2.invokeSuspend$lambda$2(Recomposer.kt:638)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:39)
at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.android.kt:108)
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:1158)
at android.view.Choreographer.doCallbacks(Choreographer.java:950)
at android.view.Choreographer.doFrame(Choreographer.java:874)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1142)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1038)
java.lang.IllegalArgumentException: NavDisplay backstack cannot be empty
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.NavDisplay(NavDisplay.kt:287)
at androidx.navigation3.ui.NavDisplayKt.NavDisplay(Unknown Source:1)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.NavDisplay$lambda$4$NavDisplayKt__NavDisplayKt(Unknown Source:38)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.$r8$lambda$P9Mf3Do1t4N-_9P4T8PgpKaFFzE(Unknown Source:0)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:201)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(ComposerImpl.kt:1690)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(ComposerImpl.kt:2026)
at androidx.compose.runtime.ComposerImpl.doCompose-aFTiNEg(ComposerImpl.kt:2659)
at androidx.compose.runtime.ComposerImpl.recompose-aFTiNEg$runtime(ComposerImpl.kt:2583)
at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:1080)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:1406)
at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:159)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2.invokeSuspend$lambda$2(Recomposer.kt:638)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:39)
at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.android.kt:108)
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:1158)
at android.view.Choreographer.doCallbacks(Choreographer.java:950)
at android.view.Choreographer.doFrame(Choreographer.java:874)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1142)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1038)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.runtime.PausableMonotonicFrameClock@379dd10, androidx.compose.ui.platform.MotionDurationScaleImpl@69e3009, StandaloneCoroutine{Cancelling}@3f3620e, AndroidUiDispatcher@b55342f]
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
