You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:45:35