Status Update
Comments
tr...@google.com <tr...@google.com> #2
So there does seem to be a bug in Navigation that causes this to fail.
When it navigates with popUpTo
and removes SecondFragment
, that removal in fragment is set for a frame later and before it is actually removed the navigate call in the onViewCreated
of SecondFragment
enqueues another call to add it back. But we still need to destroy SecondDetailFragment
which ends up marking the NavBackStackEntry
associated with SecondFragment
as complete before navigation has received the call from the fragment that it has been added back. So by the time it hits this check, the SecondFragment
is in the correct state, but Navigation has no way of referencing it so it assumes that it is not associated with an entry.
But this is not the way this type of situation should be implemented. Instead of having the destinations as part of the NavGraph, they should:
- be managed by the childFragmentManager of
SecondFragment
. So instead of going back toSecondFragment
just to go somewhere else, each of the fragments take the entire content ofSecondFragment
and are swapped out. - for some sort of a/b testing, set different graphs in the Activity. The graphs would keep the same
SecondFragment
id, but swap out the names and then you choose the correct graph based on the condition.
Description
Please describe your issue and include details such as the version of CameraX you are using and any relevant logs related to your issue.
// If at all possible, capture an Android logcat (
CAMERAX VERSION:
camera-core: 1.0.0-beta03
camera-camera2: 1.0.0-beta03
camera-lifecycle: 1.0.0-beta03
camera-view: 1.0.0-alpha10
ANDROID OS BUILD NUMBER: 8.1.0
DEVICE NAME: Samsung Galaxy XCover4
DESCRIPTION:
I can see some crashes on Crashlytics in my production app. It may be difficult to reproduce, I don't know what the user did.
I don't know if this is the right place to report this kind of issues, but I think it may let you to improve the camera library
Thanks.
Fatal Exception: java.lang.IllegalStateException: Camera surface session should only fail with request cancellation. Instead failed due to:
c.f.a.b$b: The completer object was garbage collected - this future would otherwise never complete. The tag was: SurfaceRequest[size: 1280x720, id: 68262726]-status
at androidx.core.util.Preconditions.checkState(Preconditions.java:96)
at androidx.camera.core.SurfaceRequest$4.onFailure(SurfaceRequest.java:264)
at androidx.camera.core.impl.utils.futures.Futures$CallbackListener.run(Futures.java:338)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:7000)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)