react-native-screens
react-native-screens copied to clipboard
Crash on Android in "unknown circumstances"
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 |
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?
Hey! 👋
It looks like you've omitted a few important sections from the issue template.
Please complete Steps To Reproduce and Reproduction sections.
We're in the same boat. I'm trying like heck to create reproduction steps but so far to no avail.