如何修复React Native中ScreenStackFragment的内存泄漏问题
React Native Android应用内存泄漏排查求助
我正在分析基于React Native开发的Android应用,从堆转储中发现了如下调用栈,但刚接触React Native,找不到可行的修复方案,恳请帮助。
堆转储调用栈
4086 bytes retained by leaking objects Displaying only 1 leak trace out of 2 with the same signature Signature: 40af8a997b87530c5a5a9802b690a5c657fe98a4 ┬─── │ GC Root: Global variable in native code │ ├─ com.facebook.react.bridge.JavaModuleWrapper instance │ Leaking: UNKNOWN │ Retaining 5.5 kB in 221 objects │ ↓ JavaModuleWrapper.mModuleHolder │ ~~~~~~~~~~~~~ ├─ com.facebook.react.bridge.ModuleHolder instance │ Leaking: UNKNOWN │ Retaining 52 B in 2 objects │ ↓ ModuleHolder.mModule │ ~~~~~~~ ├─ com.facebook.react.uimanager.UIManagerModule instance │ Leaking: UNKNOWN │ Retaining 911.2 kB in 22002 objects │ mReactApplicationContext instance of com.facebook.react.bridge.ReactApplicationContext, wrapping global.fwd.omne.MainApplication │ ↓ UIManagerModule.mUIImplementation │ ~~~~~~~~~~~~~~~~~ ├─ com.facebook.react.uimanager.UIImplementation instance │ Leaking: UNKNOWN │ Retaining 661.2 kB in 14099 objects │ mReactContext instance of com.facebook.react.bridge.ReactApplicationContext, wrapping global.fwd.omne.MainApplication │ ↓ UIImplementation.mOperationsQueue │ ~~~~~~~~~~~~~~~~ ├─ com.facebook.react.uimanager.UIViewOperationQueue instance │ Leaking: UNKNOWN │ Retaining 393.7 kB in 6061 objects │ mReactApplicationContext instance of com.facebook.react.bridge.ReactApplicationContext, wrapping global.fwd.omne.MainApplication │ ↓ UIViewOperationQueue.mNativeViewHierarchyManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ├─ com.facebook.react.uimanager.NativeViewHierarchyManager instance │ Leaking: UNKNOWN │ Retaining 393.3 kB in 6052 objects │ ↓ NativeViewHierarchyManager.mTagsToViews │ ~~~~~~~~~~~~ ├─ android.util.SparseArray instance │ Leaking: UNKNOWN │ Retaining 386.7 kB in 6036 objects │ ↓ SparseArray.mValues │ ~~~~~~~ ├─ java.lang.Object[] array │ Leaking: UNKNOWN │ Retaining 383.7 kB in 6034 objects │ ↓ Object[37] │ ~~~~ ├─ com.swmansion.rnscreens.Screen instance │ Leaking: UNKNOWN │ Retaining 1.5 kB in 23 objects │ View not part of a window view hierarchy │ View.mAttachInfo is null (view detached) │ View.mWindowAttachCount = 1 │ mContext instance of com.facebook.react.uimanager.ThemedReactContext, wrapping activity global.fwd.omne.MainActivity with mDestroyed = false │ ↓ Screen.fragment │ ~~~~~~~~ ╰→ com.swmansion.rnscreens.ScreenStackFragment instance Leaking: YES (Fragment#mFragmentManager is null) Retaining 2.0 kB in 69 objects
已尝试的修复方案
我已查阅并应用了以下相关讨论及修复方案,但均无效果:
- react-native-screens官方的Android配置指南
- react-native-screens项目的Issue #17
- react-navigation项目的Issue #7078
相关版本信息
- React Native版本:最新版
- Android系统版本:12
内容的提问来源于stack exchange,提问作者Mithun
相关产品推荐
相关产品推荐

