-
-
Notifications
You must be signed in to change notification settings - Fork 594
Open
Labels
Missing reproThis issue need minimum repro scenarioThis issue need minimum repro scenarioPlatform: AndroidThis issue is specific to AndroidThis issue is specific to Android
Description
Description
In reanimated an issue has been reported of a crash that happens when navigating:
I debugged this and found that the culprit is that we:
- dispatch transitionProgress events, while we are drawing
- reanimated intercepts this event dispatch and starts to perform its operations synchronously
- this causes the native view hierarchy to change eventually, while we are drawing which is causing said crash
FATAL EXCEPTION: main
Process: com.rpyoyo.test, PID: 23462
java.lang.NullPointerException: Attempt to read from field 'int android.view.View.mViewFlags' on a null object reference in method 'void android.view.ViewGroup.dispatchGetDisplayList()'
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4584)
at android.view.View.updateDisplayListIfDirty(View.java:24280)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4612)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4585)
at android.view.View.updateDisplayListIfDirty(View.java:24280)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4612)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4585)
at android.view.View.updateDisplayListIfDirty(View.java:24280)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4612)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4585)
at android.view.View.updateDisplayListIfDirty(View.java:24280)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4612)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4585)
at android.view.View.updateDisplayListIfDirty(View.java:24280)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4612)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4585)
at android.view.View.updateDisplayListIfDirty(View.java:24280)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4612)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4585)
at android.view.View.updateDisplayListIfDirty(View.java:24280)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4612)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4585)
at android.view.View.updateDisplayListIfDirty(View.java:24280)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:745)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:751)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:849)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:6761)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:6394)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:5272)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3671)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:12124)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:2459)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:2468)
at android.view.Choreographer.doCallbacks(Choreographer.java:1693)
at android.view.Choreographer.doFrame(Choreographer.java:1448)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:2284)
at android.os.Handler.handleCallback(Handler.java:1014)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:250)
at android.os.Looper.loop(Looper.java:340)
at android.app.ActivityThread.main(ActivityThread.java:9911)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:621)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:957)
Steps to reproduce
- See reproduction steps from original issue
- https://github.com/rpyoyo/crash-reproduction-react-native-reanimated.git
Snack or a link to a repository
https://github.com/rpyoyo/crash-reproduction-react-native-reanimated.git
Screens version
4.16.0
React Native version
0.81.4
Platforms
Android
JavaScript runtime
Hermes
Workflow
None
Architecture
None
Build type
None
Device
None
Device model
Vivo Y19s
Acknowledgements
Yes
tomekzaw
Metadata
Metadata
Assignees
Labels
Missing reproThis issue need minimum repro scenarioThis issue need minimum repro scenarioPlatform: AndroidThis issue is specific to AndroidThis issue is specific to Android