ground-android icon indicating copy to clipboard operation
ground-android copied to clipboard

[Draw/walk perimeter] Crash on config change after fresh login

Open gino-m opened this issue 1 year ago • 3 comments

Crash after config change on "draw/walk perimeter" screen after fresh login:

10:58:25.514 AndroidRuntime           E  FATAL EXCEPTION: main
                                         Process: com.google.android.ground, PID: 30446
                                         java.lang.IllegalArgumentException: Navigation action/destination com.google.android.ground:id/showTermsOfService cannot be found from the current destination Destination(com.google.android.ground:id/data_collection_fragment) label=Collect data class=com.google.android.ground.ui.datacollection.DataCollectionFragment
                                         	at androidx.navigation.NavController.navigate(NavController.kt:1691)
                                         	at androidx.navigation.NavController.navigate(NavController.kt:1609)
                                         	at androidx.navigation.NavController.navigate(NavController.kt:2169)
                                         	at com.google.android.ground.MainActivity.onNavigate(MainActivity.kt:157)
                                         	at com.google.android.ground.MainActivity.access$onNavigate(MainActivity.kt:56)
                                         	at com.google.android.ground.MainActivity$onCreate$2$1.emit(MainActivity.kt:82)
                                         	at com.google.android.ground.MainActivity$onCreate$2$1.emit(MainActivity.kt:82)
                                         	at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(SharedFlow.kt:382)
                                         	at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(Unknown Source:15)
                                         	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
                                         	at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:235)
                                         	at kotlinx.coroutines.DispatchedTaskKt.resumeUnconfined(DispatchedTask.kt:191)
                                         	at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:163)
                                         	at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:474)
                                         	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:508)
                                         	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$default(CancellableContinuationImpl.kt:497)
                                         	at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:368)
                                         	at kotlinx.coroutines.flow.SharedFlowImpl.tryEmit(SharedFlow.kt:399)
                                         	at kotlinx.coroutines.flow.SharedFlowImpl.emit$suspendImpl(SharedFlow.kt:404)
                                         	at kotlinx.coroutines.flow.SharedFlowImpl.emit(Unknown Source:0)
                                         	at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(SharedFlow.kt:382)
                                         	at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(Unknown Source:15)
                                         	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
                                         	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
                                         	at android.os.Handler.handleCallback(Handler.java:959)
                                         	at android.os.Handler.dispatchMessage(Handler.java:100)
                                         	at android.os.Looper.loopOnce(Looper.java:232)
                                         	at android.os.Looper.loop(Looper.java:317)
                                         	at android.app.ActivityThread.main(ActivityThread.java:8592)
                                         	at java.lang.reflect.Method.invoke(Native Method)
                                         	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
                                         	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
                                         	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@fa81a7d, Dispatchers.Main.immediate]

gino-m avatar Sep 23 '24 15:09 gino-m

@gino-m Looks like this is not happening now in the latest master branch.

anandwana001 avatar Oct 04 '24 06:10 anandwana001

Still happens with other destinations in prod 0.1.10, 20 crashes in last 7 days:

          Fatal Exception: java.lang.IllegalArgumentException: Navigation action/destination org.openforis.ground:id/show_sync_status cannot be found from the current destination Destination(org.openforis.ground:id/sync_status_fragment) label=Data sync status class=com.google.android.ground.ui.syncstatus.SyncStatusFragment
       at androidx.navigation.NavController.navigate(NavController.kt:1691)
       at androidx.navigation.NavController.navigate(NavController.kt:1609)
       at androidx.navigation.NavController.navigate(NavController.kt:2169)
       at com.google.android.ground.MainActivity.onNavigate(MainActivity.kt:157)
       at com.google.android.ground.MainActivity.access$onNavigate(MainActivity.kt:56)
       at com.google.android.ground.MainActivity$onCreate$2$1.emit(MainActivity.kt:82)
       at com.google.android.ground.MainActivity$onCreate$2$1.emit(MainActivity.kt:82)
       at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(SharedFlow.kt:382)
       at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(:15)
       at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:235)
       at kotlinx.coroutines.DispatchedTaskKt.resumeUnconfined(DispatchedTask.kt:191)
       at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:163)
       at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:474)
       at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:508)
       at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$default(CancellableContinuationImpl.kt:497)
       at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:368)
       at kotlinx.coroutines.flow.SharedFlowImpl.tryEmit(SharedFlow.kt:399)
       at kotlinx.coroutines.flow.SharedFlowImpl.emit$suspendImpl(SharedFlow.kt:404)
       at kotlinx.coroutines.flow.SharedFlowImpl.emit()
       at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(SharedFlow.kt:382)
       at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(:15)
       at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
       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)
        

gino-m avatar Oct 07 '24 18:10 gino-m

Note that this particular exception occurred across 3 different surveys, from screen HomeScreenMapContainerFragment .

gino-m avatar Oct 07 '24 18:10 gino-m

Closing as likely duplicate of https://github.com/google/ground-android/issues/2776

gino-m avatar Nov 19 '24 18:11 gino-m