callstack / callstack/react-native-paper
Crash on latest React Native
- 主要言語
- TypeScript
- スター
- 14.5k
- フォーク
- 2.2k
- 平均マージ
- 5日 23時間
- マージ済み PR(30日)
- 12
説明
It's uneasy to reproduce and best I have so far is noticing that this component occasionally crashes the app on Android.
````typescript
````
The crash:
````
Process: com.snapdone, PID: 14949
java.lang.IllegalStateException: EdgeToEdgeReactViewGroup contains null child at index 1 when traversal in dispatchGetDisplayList, the view may have been removed.
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4524)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4556)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4529)
at android.view.View.updateDisplayListIfDirty(View.java:24084)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:694)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:700)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:798)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:5839)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5490)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4474)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3071)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10659)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1570)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1579)
at android.view.Choreographer.doCallbacks(Choreographer.java:1179)
at android.view.Choreographer.doFrame(Choreographer.java:1108)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1553)
at android.os.Handler.handleCallback(Handler.java:1041)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.dispatchMessage(Looper.java:315)
at android.os.Looper.loopOnce(Looper.java:251)
2025-09-17 16:52:49.272 14949-14949 AndroidRuntime com.snapdone E at android.os.Looper.loop(Looper.java:349) (Ask Gemini)
at android.app.ActivityThread.main(ActivityThread.java:9041)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)
````
Deps:
- "react-native": "0.81.4"
- "expo": "54.0.8"
- "react-native-paper": "5.15.5"
Device:
- Google Pixel 7
コントリビューションガイド
調査の方向性
まず、Pixel 7または同等のデバイスで、React Native 0.81.4、Expo 54.0.8、react-native-paper 5.15.5を使用して、報告されたPortalとLoadingIndicatorのケースをAndroid上で再現します。PortalとLoadingIndicatorのエントリーポイントおよびAndroidのビュー更新を追跡します。完了の条件は、断続的に発生するEdgeToEdgeReactViewGroup null-childクラッシュが発生しなくなることです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- react-native, typescript
- 領域
- mobile
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100