react-native-screens icon indicating copy to clipboard operation
react-native-screens copied to clipboard

Crash on Android in "unknown circumstances"

Open djMax opened this issue 2 years ago • 3 comments

Description

We are getting a null pointer crash in react-native-screens code. It's our most popular crash, but I don't have a lot of other detail. I'm hoping the stack trace might help.

Stack

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.dispatchDetachedFromWindow()' on a null object reference
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
       at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5588)
       at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5559)
       at android.view.ViewGroup.removeView(ViewGroup.java:5490)
       at com.swmansion.rnscreens.ScreenContainer.removeView(ScreenContainer.kt:65)
       at androidx.fragment.app.SpecialEffectsController$Operation$State.applyState(SpecialEffectsController.java:470)
       at androidx.fragment.app.DefaultSpecialEffectsController.applyContainerChanges(DefaultSpecialEffectsController.java:822)
       at androidx.fragment.app.DefaultSpecialEffectsController$1.run(DefaultSpecialEffectsController.java:111)
       at androidx.fragment.app.SpecialEffectsController$Operation.complete(SpecialEffectsController.java:713)
       at androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation.complete(SpecialEffectsController.java:770)
       at androidx.fragment.app.SpecialEffectsController$Operation.completeSpecialEffect(SpecialEffectsController.java:690)
       at androidx.fragment.app.DefaultSpecialEffectsController$SpecialEffectsInfo.completeSpecialEffect(DefaultSpecialEffectsController.java:855)
       at androidx.fragment.app.DefaultSpecialEffectsController.startAnimations(DefaultSpecialEffectsController.java:154)
       at androidx.fragment.app.DefaultSpecialEffectsController.executeOperations(DefaultSpecialEffectsController.java:123)
       at androidx.fragment.app.SpecialEffectsController.executePendingOperations(SpecialEffectsController.java:306)
       at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1853)
       at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764)
       at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1670)
       at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:323)
       at com.swmansion.rnscreens.ScreenContainer.onUpdate(ScreenContainer.kt:350)
       at com.swmansion.rnscreens.ScreenContainer.performUpdates(ScreenContainer.kt:299)
       at com.swmansion.rnscreens.ScreenContainer.performUpdatesNow(ScreenContainer.kt:291)
       at com.swmansion.rnscreens.ScreenContainer.notifyChildUpdate(ScreenContainer.kt:86)
       at com.swmansion.rnscreens.Screen.setActivityState(Screen.kt:142)
       at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:51)
       at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:25)
       at com.facebook.react.viewmanagers.RNSScreenManagerDelegate.setProperty(RNSScreenManagerDelegate.java:65)
       at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps(ViewManagerPropertyUpdater.java:46)
       at com.facebook.react.uimanager.ViewManager.updateProperties(ViewManager.java:45)
       at com.facebook.react.uimanager.NativeViewHierarchyManager.updateProperties(NativeViewHierarchyManager.java:142)
       at com.facebook.react.uimanager.UIViewOperationQueue$UpdatePropertiesOperation.execute(UIViewOperationQueue.java:93)
       at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:915)
       at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:1026)
       at com.facebook.react.uimanager.UIViewOperationQueue.access$2600(UIViewOperationQueue.java:47)
       at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1086)
       at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
       at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
       at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:984)
       at android.view.Choreographer.doCallbacks(Choreographer.java:764)
       at android.view.Choreographer.doFrame(Choreographer.java:696)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:965)
       at android.os.Handler.handleCallback(Handler.java:873)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:214)
       at android.app.ActivityThread.main(ActivityThread.java:7073)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)

Platform

  • [X] Android

Workflow

  • [X] Bare workflow

Package versions

package version
react-native 0.67.4
@react-navigation/native 6.0.10
react-native-screens 3.13.1
react-native-safe-area-context 4.3.1
react-native-gesture-handler 2.4.2
react-native-reanimated 2.8.0

djMax avatar Jun 24 '22 14:06 djMax

Hey! 👋

The issue doesn't seem to contain a minimal reproduction.

Could you provide a snippet of code, a snack or a link to a GitHub repository that reproduces the problem?

github-actions[bot] avatar Jun 24 '22 14:06 github-actions[bot]

Hey! 👋

It looks like you've omitted a few important sections from the issue template.

Please complete Steps To Reproduce and Reproduction sections.

github-actions[bot] avatar Jun 24 '22 14:06 github-actions[bot]

We're in the same boat. I'm trying like heck to create reproduction steps but so far to no avail.

adsmitKCL avatar Jun 30 '22 14:06 adsmitKCL