Fixed
Status Update
Comments
il...@google.com <il...@google.com>
il...@google.com <il...@google.com>
il...@google.com <il...@google.com> #2
Can you include a sample project that crashes in release mode?
ma...@gmail.com <ma...@gmail.com> #3
For us this is only happening in places where LifecycleEventEffect
is used. Example stacktrace:
Fatal Exception: java.lang.IllegalStateException
CompositionLocal LocalLifecycleOwner not present
androidx.lifecycle.compose.LocalLifecycleOwnerKt$LocalLifecycleOwner$1$1.invoke (LocalLifecycleOwner.android.kt:63)
androidx.lifecycle.compose.LocalLifecycleOwnerKt$LocalLifecycleOwner$1$1.invoke (LocalLifecycleOwner.android.kt:62)
kotlin.SynchronizedLazyImpl.getValue (LazyJVM.kt:74)
androidx.compose.runtime.LazyValueHolder.getCurrent (LazyValueHolder.java:29)
androidx.compose.runtime.LazyValueHolder.getValue (LazyValueHolder.java:31)
androidx.compose.runtime.CompositionLocalMapKt.read (CompositionLocalMap.kt:90)
androidx.compose.runtime.ComposerImpl.consume (Composer.kt:2135)
androidx.lifecycle.compose.LifecycleEffectKt.LifecycleEventEffect (LifecycleEffect.kt:748)
com.freeletics.feature.profile.ProfileUiKt$ProfileUi$1.invoke (ProfileUi.kt:62)
This is also on Lifecycle 2.8.2 with Compose 1.6.
Description
Version used: 1.0.0-alpha09
Devices/Android versions reproduced on: Nexus 5X
Sample: attached
Screen recording: attached
As you can see in the attached sample, I have a simple application with one Activity that has a NavHostFragment and a BottomNavigationView. The navigation graph contains 3 fragment destinations(fragments A, B and C) which are also the menu items for the BottomNavigationView. Fragment C has a drawer layout that contains another NavHostFragment and a NavigationView. This inner NavHostFragment has its own navigation graph with another 3 fragments: D(start destination), E, and F.
Steps to reproduce:
1) Open app
2) Open Fragment C which implicitly opens Fragment D(start destination for that NavHostFragment)
3) From the drawer open Fragment E
4) Click on Fragment B from BottomNavigationView
5) Press back
Observe that Fragment D is opened and that the Fragment B is still the selected item from the BottomNavigationView.
My expected behavior is that the inner NavHostFragment stack is cleared by step 4 and the back button will navigate the user to the start destination of the outer NavHostFragment(Fragment A).
Strange behavior can also be observed if you click on A or C destinations at step 4.
I'm looking forward to your reply.
Thanks!