react-native - 由于一些内存不足错误,反应本机应用程序崩溃如何解决这个问题
问题描述
由于以下错误应用程序崩溃,我无法弄清楚确切的问题是什么以及原因是什么
java.lang.RuntimeException:
at com.facebook.react.bridge.JavaMethodWrapper.invoke (JavaMethodWrapper.java:383)
at com.facebook.react.bridge.JavaModuleWrapper.invoke (JavaModuleWrapper.java:160)
at com.facebook.react.bridge.queue.NativeRunnable.run (Native Method)
at android.os.Handler.handleCallback (Handler.java:751)
at android.os.Handler.dispatchMessage (Handler.java:95)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage (MessageQueueThreadHandler.java:29)
at android.os.Looper.loop (Looper.java:154)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run (MessageQueueThreadImpl.java:192)
at java.lang.Thread.run (Thread.java:762)
Caused by: java.lang.reflect.InvocationTargetException:
at java.lang.reflect.Method.invoke (Native Method)
at com.facebook.react.bridge.JavaMethodWrapper.invoke (JavaMethodWrapper.java:372)
Caused by: java.lang.OutOfMemoryError:
at java.lang.AbstractStringBuilder.<init> (AbstractStringBuilder.java:64)
at java.lang.StringBuilder.<init> (StringBuilder.java:98)
at libcore.net.UriCodec.decode (UriCodec.java:273)
at android.net.Uri.decode (Uri.java:1946)
at android.net.Uri$AbstractPart.getDecoded (Uri.java:1976)
at android.net.Uri$StringUri.getSchemeSpecificPart (Uri.java:560)
at cl.json.ShareFile.isBase64File (ShareFile.java:66)
at cl.json.ShareFile.isFile (ShareFile.java:61)
at cl.json.social.ShareIntent.open (ShareIntent.java:74)
at cl.json.social.GenericShare.open (GenericShare.java:18)
at cl.json.RNShareModule.open (RNShareModule.java:94)
解决方案
我的理解是有两种方法来分析这个:
- 在您的应用中集成像 Crashlytics 这样的工具,让它帮助您
- 尝试找出代码的哪一部分导致了这种情况。如果您在应用程序中执行导致崩溃的特定操作时发生崩溃,这是可能的。如果它随意发生,这种方法是行不通的。但是,如果在渲染特定组件或执行特定函数时发生崩溃,那么您可以尝试注释掉部分代码,并通过反复试验找出有问题的代码。
我使用了这两种方法。第一个更容易,但它需要一次性集成工作。
如果你使用 expo,你应该使用 Sentry 而不是 Crashlytics。
推荐阅读
- rust - 如何删除值周围的“MutexGuard”?
- python - 仅当它们可以连续连接而中间没有任何整数时,如何从列表中连接字符串?
- docker - 无法在 golang:1.14.9-alpine docker 中选择包 liblzma-dev(没有这样的包)、libxml-dev(没有这样的包)
- javascript - VueJS - 使下拉列表按字母顺序显示
- android - 如果之前的代码没有解锁,为什么我的代码进入了锁定区域?
- laravel - 访问子文件夹 Laravel 8 中的 Blade 布局模板
- node.js - 节点 express.js API 第一次请求响应慢
- css - 如何在 React Native 中创建具有渐变颜色和图标的按钮?
- ruby - 有两个文本文件。我需要添加到第一个文件中,在指定编号 n 的行之后,第二个文件的内容
- sql - 请我需要选择行驶公里数大于 1000 的城市呼叫