Got this crash on Galaxy Tab S7 Android 11 only.
I'm using react-navigation v5 and react-native-screens 2.17.1.
Can anyone help me?
android.widget.EditText.onDetachedFromWindow (EditText.java:397)
com.facebook.react.views.textinput.ReactEditText.onDetachedFromWindow (ReactEditText.java:714)
android.view.View.dispatchDetachedFromWindow (View.java:22071)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.removeAllViewsInLayout (ViewGroup.java:6606)
android.view.ViewGroup.removeAllViews (ViewGroup.java:6552)
com.swmansion.rnscreens.ScreenContainer.onDetachedFromWindow (ScreenContainer.java:309)
android.view.View.dispatchDetachedFromWindow (View.java:22071)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4755)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:4747)
android.view.ViewGroup.removeViewInternal (ViewGroup.java:6394)
android.view.ViewGroup.removeViewInternal (ViewGroup.java:6365)
android.view.ViewGroup.removeView (ViewGroup.java:6296)
com.swmansion.rnscreens.ScreenContainer.removeView (ScreenContainer.java:84)
androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:1250)
androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:1356)
androidx.fragment.app.FragmentManager.moveFragmentToExpectedState (FragmentManager.java:1434)
androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:1504)
androidx.fragment.app.FragmentManager.executeOpsTogether (FragmentManager.java:2007)
androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute (FragmentManager.java:1953)
androidx.fragment.app.FragmentManager.execPendingActions (FragmentManager.java:1849)
androidx.fragment.app.FragmentManager$4.run (FragmentManager.java:413)
android.os.Handler.handleCallback (Handler.java:938)
android.os.Handler.dispatchMessage (Handler.java:99)
android.os.Looper.loop (Looper.java:246)
android.app.ActivityThread.main (ActivityThread.java:8506)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:596)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
@NeronKesar Weird! I just experienced the same error message/crash after updating my S7+ Tab to Android 11 with OneUI 3.1 but with V2.15.0 and updated to V2.17.1 which fixed it for me.
What I wonder most is, what is semRemoveEditText? Android doesn't seem to know that method, haven't found it anywhere.
If you jsut recently updated RN-Screens, make sure to do a full build (gradlew clean and build again).
I am not sure if it is an issue with react-native-screens. The ScreenContainer just calls onDetachedFromWindow which is a normal behavior. If you think there is something that can be done on the side of react-native-screens, please provide a reproduction of the issue so we can work on it.
@WoLewicki I don't have a repro repo but In my case it was reproducable by:
launchImageLibrary from react-native-image-pickerAs mentioned in the above comment, for me it works with RN-Screens V 2.17.1.
@WoLewicki This is still not a repro, sorry for that but:
I have experienced the same error (void android.view.ViewRootImpl.semRemoveEditText(android.widget.EditText)' on a null object reference) again on a different part of the app. Samsung Android 11 again, but it also seems to happen on Android 8, 9 and 10 (at least according to the crash reports I got).
If I comment enableScreens(); out, the crash does not happen anymore.
I highly suspect the Samsung OneUI 3.0/3.1 update to be the root-cause at the moment when enabling rn-screens.
Edit: Okay, also happens on non samsung devices and emulators now.
@creambyemute Thanks for your advice, commenting enableScreens() fixed the crash!
@NeronKesar commenting enableScreens() removes the usage of react-native-screens in the project and disables all of the performance improvements, so I wouldn't treat it as a fix.
Can you provide a whole stacktrace and a code snippet with an easy reproduction of the crash? Otherwise it is really hard to do something regarding the problem @creambyemute @NeronKesar.
@WoLewicki I'll try to get a repro up for the weekend. Will let you know
Hey there @NeronKesar, @WoLewicki and @creambyemute,
Sharing some information about this crash which hopefully helps, the stack trace seems exactly the same as @NeronKesar
Device Model - Galaxy Tab S7
Device OS - Android 11
Orientation - Portrait
Rooted - No
react-native-screens: 2.18.1
Stack trace
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewRootImpl.semRemoveEditText(android.widget.EditText)' on a null object reference
at android.widget.EditText.onDetachedFromWindow(EditText.java:397)
at com.facebook.react.views.textinput.ReactEditText.onDetachedFromWindow(ReactEditText.java:714)
at android.view.View.dispatchDetachedFromWindow(View.java:22071)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4747)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4747)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4747)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4747)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4747)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4747)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4747)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4747)
at android.view.ViewGroup.removeAllViewsInLayout(ViewGroup.java:6606)
at android.view.ViewGroup.removeAllViews(ViewGroup.java:6552)
at com.swmansion.rnscreens.ScreenContainer.onDetachedFromWindow(ScreenContainer.java:309)
at android.view.View.dispatchDetachedFromWindow(View.java:22071)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4755)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4747)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4747)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4747)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:6394)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:6365)
at android.view.ViewGroup.removeView(ViewGroup.java:6296)
at com.swmansion.rnscreens.ScreenContainer.removeView(ScreenContainer.java:84)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1250)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1504)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2007)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
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:8506)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:596)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
The crash doesn't happen on the simulator, probably it's a production build/specific device issue.
Note: We have screens enabled, but we aren't using the nativeStacks
According to our logs this is happening during authentication where textInputs are rendered (as seen on the stack trace)
We are also having the same problem on a production app, we're using the version 2.18.1 of react-native-screens in there.
I was also able to simulate the same crash on a test project of mine using react-native-screens 2.17.1: https://github.com/luizdubas/rn-screens-tablet-error
This project has a BottomTabNavigator, the first tab has a TextInput and every time I change to the next tab the app crashes.
Some important notes is that I was unable to simulate this on a simulator, I've used the Samsung Remote Test Lab to test it. Also this seems to happen only on the Samsung Galaxy Tab S7 and S7+ using Android 11, the error doesn't seem to happen on Android 10.
The crash appears in ReactEditText in calling super.onDetachedFromWindow, which fires this method on android.widget.EditText. It seems like a bug in the code of android.widget.EditText on Samsung Galaxy Tab S7 and S7+ with Android 11. Maybe you could submit an issue in react-native repository with this crash and reproduction? I am not sure if we can do anything about this unfortunately.
I think the only question that I would have is why this happens only when react-native-screens is enabled? 馃
Trying the same example but without enabling react-native-screens works without issues.
Probably because of the specific order of lifecycle methods used by react-native-screens, but I cannot say much more.
+1
Hello, everyone! Is there any update on the issue? Because we had the same one on galaxy tab 7 too with android 11. thanks a lot
We are also having this problem, is anyone going to fix this? Would be really nice. Thanks
Most helpful comment
I think the only question that I would have is why this happens only when
react-native-screensis enabled? 馃Trying the same example but without enabling
react-native-screensworks without issues.