Status Update
Comments
jb...@google.com <jb...@google.com> #2
ax...@gmail.com <ax...@gmail.com> #3
Great! Thanks a lot, I'll look for the live updates soon!
jo...@meterapp.co <jo...@meterapp.co> #4
jo...@meterapp.co <jo...@meterapp.co> #5
Navigate to a screen and press the back button in succession, quickly, multiple times causes this crash.
The navigation-compose team would be interested in this repro to fix before the next release of the library
jb...@google.com <jb...@google.com>
fa...@gmail.com <fa...@gmail.com> #6
jo...@meterapp.co <jo...@meterapp.co> #7
ap...@google.com <ap...@google.com> #8
Branch: androidx-main
commit 653b576977436513ad7baa9a76c0522bc2d1ff95
Author: Jeremy Woods <jbwoods@google.com>
Date: Tue Aug 20 15:50:07 2024
Ensure PredictiveBackHandler respects late enabled changes
It seems that it is possible to get into a case where after a Predictive
Back gesture has been started, the handler is disabled and instead of
cancelling the gesture, the PredictiveBackHandler is executed as if it
were still enabled.
We can change PredictiveBackHandler to take into account any late
changes to the enabled state and be sure to keep any pending callbacks
from executing at all.
This means if you are on the last destination in the
back stack and you some how get in this state, the gesture arrow will
show, but will not work.
Test: Added PredictiveBackHandlerTest
Bug: 340202286
RelNote: "NavHost will no longer call an IndexOutOfBoundsException when
the PredictiveBackGesture is enabled."
Change-Id: Ie3301e4a06593101bc48c447f3a9505a1de5d6a3
M activity/activity-compose/src/androidTest/java/androidx/activity/compose/PredictiveBackHandlerTest.kt
M activity/activity-compose/src/main/java/androidx/activity/compose/PredictiveBackHandler.kt
jb...@google.com <jb...@google.com> #9
This has been addressed internally and will be available in the Activity 1.9.2 release.
jo...@meterapp.co <jo...@meterapp.co> #10
jb...@google.com <jb...@google.com> #11
Activity 1.9.2 is scheduled for September 4th, but you can try out the fix now with snapshots.
jo...@meterapp.co <jo...@meterapp.co> #12
Anybody know where to find the 1.9.2 snapshots?
jb...@google.com <jb...@google.com> #13
Snapshots are always the latest things available internally. So the 1.10.0-SNAPSHOT will contain the change as well.
jo...@meterapp.co <jo...@meterapp.co> #14
jo...@meterapp.co <jo...@meterapp.co> #15
Its also interesting to note that I'm seeing the crash even when enableOnBackInvokedCallback is false or true.
We are also seeing the following crash. This was happening for users before the snapshot and agnostic of the enableOnBackInvokedCallback
ps, nice video Jeremy!
jb...@google.com <jb...@google.com> #16
Do you have a sample project that reproduces this issue? Without enableOnBackInvokedCallback
enabled the only thing that gets called is popBackStack
so the stacktrace should come from that.
kl...@gmail.com <kl...@gmail.com> #17
We're also seeing this crash without setting android:enableOnBackInvokedCallback
in AndroidManifest.xml
. I cannot provide a sample project, because I've not been able to reproduce this issue (with or without enableOnBackInvokedCallback
).
I haven't been able to test 1.10.0-SNAPSHOT
since I'm not able to reproduce the issue, but I'm fairly certain the commit linked above (enabled
switches to false, only the channel
is closed, but the CoroutineScope
in which the lambda run is still active. Since the Channel is buffered, it will deliver remaining events. Also the lambda in question does not have a suspension point before currentBackStack
is accessed. So even if the scope were cancelled, the code would still execute.
That said, wouldn't the easiest solution be to add
if (currentBackStack.size < 2) return
to the start of the PredictiveBackHandler
lambda in PredictiveBackHandler
being disabled and it returning immediately.
jo...@meterapp.co <jo...@meterapp.co> #18
The steps to repro the first crash are somewhat tricky and require good timing
1. Start the app in debug mode (or use a really old phone). This seems to help to reproduce the crash because it creates a bigger window for clicking the back button at the right time
2. Navigate to a new screen while simultaneously or a split second later pressing the back button. I mash the back button right after clicking on a button to open a screen
ha...@gmail.com <ha...@gmail.com> #19
For us Activity 1.9.2 didn't fix the issue.
pr...@google.com <pr...@google.com> #20
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.activity:activity-compose:1.9.2
androidx.activity:activity-compose:1.10.0-alpha02
8h...@gmail.com <8h...@gmail.com> #21
Fatal Exception: java.lang.IndexOutOfBoundsException
Index -1 out of bounds for length 1
jdk.internal.util.Preconditions.outOfBounds (Preconditions.java:64)
jdk.internal.util.Preconditions.outOfBoundsCheckIndex (Preconditions.java:70)
jdk.internal.util.Preconditions.checkIndex (Preconditions.java:266)
java.util.Objects.checkIndex (Objects.java:359)
java.util.ArrayList.get (ArrayList.java:434)
androidx.navigation.compose.NavHostKt$NavHost$25$1.invokeSuspend (NavHost.kt:518)
androidx.navigation.compose.NavHostKt$NavHost$25$1.invoke (NavHost.kt:13)
androidx.navigation.compose.NavHostKt$NavHost$25$1.invoke (NavHost.kt:13)
androidx.activity.compose.OnBackInstance$job$1.invokeSuspend (PredictiveBackHandler.kt:160)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33)
kotlinx.coroutines.DispatchedTask.run (DispatchedTask.kt:104)
androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch (AndroidUiDispatcher.android.kt:81)
androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch (AndroidUiDispatcher.android.kt:41)
androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.run (AndroidUiDispatcher.android.kt:57)
android.os.Handler.handleCallback (Handler.java:942)
android.os.Handler.dispatchMessage (Handler.java:99)
android.os.Looper.loopOnce (Looper.java:240)
android.os.Looper.loop (Looper.java:351)
android.app.ActivityThread.main (ActivityThread.java:8436)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:568)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1013)
Operating systems 72% Android 13
Device states 0% background
57% Oppo 15% Motorola 14% Oppo 14% Vivo
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException
length=10; index=-1
java.util.ArrayList.get (ArrayList.java:439)
androidx.navigation.compose.NavHostKt$NavHost$25$1.invokeSuspend (NavHost.kt:518)
androidx.navigation.compose.NavHostKt$NavHost$25$1.invoke (NavHost.kt:13)
androidx.navigation.compose.NavHostKt$NavHost$25$1.invoke (NavHost.kt:13)
androidx.activity.compose.OnBackInstance$job$1.invokeSuspend (PredictiveBackHandler.kt:160)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33)
kotlinx.coroutines.DispatchedTask.run (DispatchedTask.kt:104)
androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch (AndroidUiDispatcher.android.kt:81)
androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch (AndroidUiDispatcher.android.kt:41)
androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.run (AndroidUiDispatcher.android.kt:57)
android.os.Handler.handleCallback (Handler.java:790)
android.os.Handler.dispatchMessage (Handler.java:99)
android.os.Looper.loop (Looper.java:192)
android.app.ActivityThread.main (ActivityThread.java:6754)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:549)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:828)
Operating systems 75% Android 11
Device states 0% background
25% Vivo 25% Motorola 25% Samsung 25% Xiaomi
androidGradlePlugin = "8.6.0"
androidxActivity = "1.9.2"
androidxCore = "1.13.1"
androidxComposeBom = "2024.09.00"
androidxComposeMaterial3 = "1.3.0"
androidxComposeRuntimeTracing = "1.0.0-beta01"
androidxConstraintLayoutCompose = "1.0.1"
androidxHiltNavigationCompose = "1.2.0"
androidxNavigation = "2.8.0"
jo...@meterapp.co <jo...@meterapp.co> #22
il...@google.com <il...@google.com> #23
Re
jb...@google.com <jb...@google.com>
ud...@gmail.com <ud...@gmail.com> #24
composeBom = "2024.09.02"
navigation = "2.8.1"
activityCompose = "1.9.2"
appcompat = "1.7.0"
fa...@cosmoconnected.com <fa...@cosmoconnected.com> #25
It can be reproduced easily when fast navigation between menu.
enableOnBackInvokedCallback="true"
navigation = "2.8.1"
activityCompose = "1.9.2"
appcompat = "1.7.0"
ap...@google.com <ap...@google.com> #26
Project: platform/frameworks/support
Branch: androidx-main
Author: Jeremy Woods <
Link:
Fix failing PredictiveBackHandler enabled changes
Expand for full commit details
Fix failing PredictiveBackHandler enabled changes
As part of asop/3164566 we attempted to fix an error with
PredictiveBackHandler by closing the internal onBackInstance when the
enabled status changed. This would have worked, except by the time we
made it to the LaunchedEffect the onBackInstance was always null, so we
weren't closing anything.
I believe the cause of this is that `onBackInstance` was a field of a
function and we couldn't reference it across different calls. Because we
needed to change it as part of the backCallback, it also could not be
remembered.
So instead of using the onBackInstance, we can just use the callback
`isEnabled` state directly by passing the callback to the
`OnBackInstance`. This ensures that we only fire the `onBack` callback
when the function is actually enabled.
Test: PredictiveBackHandlerTest, tested and confirmed in sample app
Bug: 365027664
Bug: 340202286
RelNote: "`PredictiveBackHandler` will no longer fire it's callback
after the handler has been disabled. This will fix an issue where
the `NavHost` from Navigation Compose would throw an
`IndexOutOfBoundsException`."
Change-Id: I3f75eb2415f39b914f18cf4b87bf4ed57bb5a483
Files:
- M
activity/activity-compose/src/androidTest/java/androidx/activity/compose/PredictiveBackHandlerTest.kt
- M
activity/activity-compose/src/main/java/androidx/activity/compose/PredictiveBackHandler.kt
Hash: 1658eca1da25d8092f3cd48806946edcdec73688
Date: Thu Sep 26 18:15:59 2024
jb...@google.com <jb...@google.com> #27
This has been fixed internally and will be available in Activity 1.9.3
version.
nu...@idoctus.com <nu...@idoctus.com> #28
jo...@meterapp.co <jo...@meterapp.co> #29
This has been fixed internally and will be available in Activity 1.9.3 version.
So excited for that release, thank you for your persistence on this issue Jeremy!
Do we have a timeline for the Activity 1.9.3 release?
comment#28
The release most likely will be October 16th if it is getting released in the next release cycle that andoidx libraries have (2 week release cycle)
Activity 1.9.2 is scheduled for September 4th, but you can try out the fix now with snapshots.
comment#11
If you'd like to try it out earlier, this commit is most likely in the snapshots
na...@google.com <na...@google.com> #30
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.activity:activity-compose:1.9.3
jo...@meterapp.co <jo...@meterapp.co> #31
It seemed to address the crash on the 1.10.0 snapshot, will test 1.9.3 now that its in production and let the group know
la...@gmail.com <la...@gmail.com> #32
Thanks for this update! This has been affecting our users using navigation-compose = "2.8.2"
and activity-compose = "1.9.2"
.
bi...@gmail.com <bi...@gmail.com> #33
java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 1
at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
at java.util.Objects.checkIndex(Objects.java:359)
at java.util.ArrayList.get(ArrayList.java:434)
at androidx.navigation.compose.NavHostKt$NavHost$28$1.invokeSuspend(NavHost.kt:611)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
at androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch(AndroidUiDispatcher.android.kt:81)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch(AndroidUiDispatcher.android.kt:41)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.run(AndroidUiDispatcher.android.kt:57)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8919)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
jb...@google.com <jb...@google.com> #34
That stacktrace indicates that we have somehow collected back events without ever starting them? Do you have a minimal sample project that can reproduce that error?
bi...@gmail.com <bi...@gmail.com> #35
From what I see from Sentry :
- it seems to occur AFTER (a few seconds to a minute) my mainActivity got stopped/destroyed/detached.
- 100% of the affected users are with a SAMSUNG device and on Android 14
I don't get it..
Don't know if it's related but I have 2 nested navControllers/navHost (a main one, and one dedicated to handle bottomNavigation). But everything works smoothly and I'm not even sure if users "see" the bug occuring (got no complaints) ..
am...@gmail.com <am...@gmail.com> #36
at java.util.ArrayList.get(ArrayList.java:310)
at androidx.navigation.compose.NavHostKt$NavHost$25$1.invokeSuspend(NavHost.kt:518)
at androidx.navigation.compose.NavHostKt$NavHost$25$1.invoke(NavHost.kt:1)
at androidx.navigation.compose.NavHostKt$NavHost$25$1.invoke(NavHost.kt:2)
at androidx.activity.compose.OnBackInstance$job$1.invokeSuspend(PredictiveBackHandler.kt:154)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch(AndroidUiDispatcher.android.kt:81)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$setScheduledFrameDispatch$p(AndroidUiDispatcher.android.kt:41)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch(AndroidUiDispatcher.android.kt:41)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:68)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:909)
at android.view.Choreographer.doCallbacks(Choreographer.java:686)
at android.view.Choreographer.doFrame(Choreographer.java:619)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7406)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
does any one find the solution i'm using def nav_version = "2.8.0"
nu...@idoctus.com <nu...@idoctus.com> #37
li...@gmail.com <li...@gmail.com> #38
jb...@google.com <jb...@google.com> #39
Please file a new bug with a minimal sample project that reproduces this error.
jo...@meterapp.co <jo...@meterapp.co> #40
Same as above the stack trace changed but there is still a crash. Anyone know if its the same repro as before?
The steps to repro the first crash are somewhat tricky and require good timing
- Start the app in debug mode (or use a really old phone). This seems to help to reproduce the crash because it creates a bigger window for clicking the back button at the right time
- Navigate to a new screen while simultaneously or a split second later pressing the back button. I mash the back button right after clicking on a button to open a screen
Fatal Exception: java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 1
at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
at java.util.Objects.checkIndex(Objects.java:359)
at java.util.ArrayList.get(ArrayList.java:434)
at androidx.navigation.compose.NavHostKt$NavHost$28$1.invokeSuspend(NavHost.kt:611)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
at androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch(AndroidUiDispatcher.android.kt:81)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$setScheduledFrameDispatch$p(AndroidUiDispatcher.android.kt:41)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch(AndroidUiDispatcher.android.kt:41)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.run(AndroidUiDispatcher.android.kt:57)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:368)
at android.app.ActivityThread.main(ActivityThread.java:8839)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:572)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
si...@gmail.com <si...@gmail.com> #41
I have created a new issue in
jo...@meterapp.co <jo...@meterapp.co> #42
I have created a new issue in
, as requested. https://issuetracker.google.com/issues/375343407
Thanks for reporting this! Its my biggest crash by fare, hopefully we can resolve soon
pr...@google.com <pr...@google.com> #43
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.activity:activity-compose:1.10.0-alpha03
sh...@gmail.com <sh...@gmail.com> #44
I also same issues, It was as though val previousEntry = currentBackStack[currentBackStack.size - 2]
, NavHost.kt
, didn't guard this situation.
java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 1 at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) at java.util.Objects.checkIndex(Objects.java:359) at java.util.ArrayList.get(ArrayList.java:434) at androidx.navigation.compose.NavHostKt$NavHost$25$1.invokeSuspend(NavHost.kt:518) at androidx.navigation.compose.NavHostKt$NavHost$25$1.invoke(Unknown Source:8) at androidx.navigation.compose.NavHostKt$NavHost$25$1.invoke(Unknown Source:4) at androidx.activity.compose.OnBackInstance$job$1.invokeSuspend(PredictiveBackHandler.kt:121) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) at androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch(AndroidUiDispatcher.android.kt:81) at androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch(AndroidUiDispatcher.android.kt:41) at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.run(AndroidUiDispatcher.android.kt:57) at android.os.Handler.handleCallback(Handler.java:958) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:230) at android.os.Looper.loop(Looper.java:319) at android.app.ActivityThread.main(ActivityThread.java:8919) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.platform.MotionDurationScaleImpl@5133892, androidx.compose.runtime.BroadcastFrameClock@757c263, StandaloneCoroutine{Cancelling}@92a1e60, AndroidUiDispatcher@a705f19]
sh...@gmail.com <sh...@gmail.com> #45
Additional information activity-compose: 1.10.0-alpha03 navigation-compose: 2.9.0-alpha02
[Deleted User] <[Deleted User]> #46
nu...@idoctus.com <nu...@idoctus.com> #47
ma...@gmail.com <ma...@gmail.com> #48
I was not seeing the crash when running 'androidx.navigation:navigation-compose:2.7.2'
jo...@meterapp.co <jo...@meterapp.co> #49
The resolution of this issue has unfortunately led to a new problem, which is now tracked under Issue
If there’s any way I can help get this new issue assigned to an owner or provide further information, please let me know.
su...@gmail.com <su...@gmail.com> #50
W
Description
Component used: Navigation Version used: lastest Devices/Android versions reproduced on: any
java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 1 at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) at java.util.Objects.checkIndex(Objects.java:359) at java.util.ArrayList.get(ArrayList.java:434) at androidx.navigation.compose.NavHostKt$NavHost$17$1.invokeSuspend(NavHost.kt:342) at androidx.navigation.compose.NavHostKt$NavHost$17$1.invoke(Unknown Source:8) at androidx.navigation.compose.NavHostKt$NavHost$17$1.invoke(Unknown Source:4) at androidx.activity.compose.OnBackInstance$job$1.invokeSuspend(PredictiveBackHandler.kt:154) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) at androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch(AndroidUiDispatcher.android.kt:81) at androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch(AndroidUiDispatcher.android.kt:41) at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.run(AndroidUiDispatcher.android.kt:57) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:204) at android.os.Looper.loop(Looper.java:291) at android.app.ActivityThread.main(ActivityThread.java:8134) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1019) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.platform.MotionDurationScaleImpl@5863fee, androidx.compose.runtime.BroadcastFrameClock@1b7ec8f, StandaloneCoroutine{Cancelling}@afd7b1c, AndroidUiDispatcher@d182325]