内存不足 应用崩溃 React Native

7

使用React Native 0.33版本

几秒钟后,应用程序停止工作(仅在Android上进行了测试)

查看Android日志,我得到了如下信息:

进入图片描述

我不知道该如何检查这个问题。

3个回答

12

10
android:largeHeap="true" 这样做而不检查使用更多内存的内容是不明智的,它基本上只是延迟和隐藏潜在的内存问题,如内存泄漏。 - AmeyaB
1
@AmeyaB 有没有更好的方法来解决这个问题? - Grez.Kev
3
React Native在iOS上是否有大堆选项? - Juan Felipe Gomez
添加LeakCanary以检测内存泄漏并尝试修复它。只有在真正需要更多内存的情况下(例如游戏),才应启用largeHeap作为解决方案。 - abbas.aniefa

6
以下内容可能对您有所帮助。
    <application android:largeHeap="true">

但是,您可能需要检查您的应用程序是否存在可能的内存泄漏。例如:
  1. 在componentDidMount中添加未释放的定时器/监听器
  2. 闭包作用域泄漏
  3. 大图像尺寸
  4. 使用全局变量
我们的React Native应用也遇到了同样的问题。我们花了很多时间和精力才使我们的应用程序有些稳定。您可以查看这篇博客,它对我们帮助很大:https://blog.swmansion.com/hunting-js-memory-leaks-in-react-native-apps-bd73807d0fde 更新: 不断加载大量数据的API会在至少低端设备上给RAM带来负担,导致内存不足问题。您需要清理这个问题,并找到更好、更优化的加载数据方式。

0

对于Android:在清单文件中的Android标签

application android:largeHeap="true" 
android:hardwareAccelerated="true"

对于iOS:在Build Phases下打包React Native代码和图像部分

export NODE_BINARY=node 
export NODE_ARGS=--max-old-space-size=8192
export NODE_OPTIONS=--max-old-space-size=8192
../node_modules/react-native/scripts/react-native-xcode.sh

如果您的应用程序从网络加载图像,则使用以下库

https://github.com/fungilation/react-native-cached-image

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接