React Native 崩溃:线程:SIGSEGV libjsc.so

19

我们在Android设备上的各个随机位置遇到以下崩溃。虽然我们已将NDK ABIFilters更改为“armeabi-v7a”和“arm64-v8a”

  Crashed: Thread :  SIGSEGV  0x0000000000000010
  #00 pc 0x723d46f748 libjsc.so 
  #01 pc 0x723d4bbfe8 libjsc.so 
  #02 pc 0x7339d68b6c libc.so 

当前配置

RN 版本 0.63.4

 defaultConfig {
    ..
    ndk { abiFilters  "armeabi-v7a", "arm64-v8a" }
}
splits {
    abi {
        reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false  // If true, also generate a universal APK
        include "armeabi-v7a",
                "x86", "arm64-v8a", "x86_64"
    }
}

 project.ext.react = [
    entryFile   : "index.js",
    enableHermes: false,  // clean and rebuild if changing
 ]

在此输入图片描述

在此输入图片描述


你的 build.gradle 中启用了 Hermes 吗? - Satheesh
没有启用Hermes。这是根本问题吗? - Gufran Khurshid
2
你找到这个错误的原因了吗?有没有新的想法来解决它? - jocoders
2个回答

8

我在使用 Android RN 0.59.5 时遇到了 JSC 的问题,唯一的解决方法是升级 JSC。

这个问题是由于 JSC 深层内存问题导致的,我们几乎无法对此做出任何改变。

更多信息请参见以下帖子:

https://github.com/facebook/react-native/issues/24261

https://github.com/facebook/react-native/pull/25426/files

但是,因为您已经使用了 RN 版本 0.63.4,唯一的方法就是放弃使用 JSC,启用 Hermes。Hermes 提供了许多性能优化,如字节码、更快的冷启动等。在这里了解更多信息。

如果您想要的话,可以在 react-native/package.json 中检查应用程序中使用的 JSC 版本,并查看是否可以进一步升级。


2
我在react-native 0.63.2上也遇到了同样的错误,使用的是jsc-android:^245459.0.0,而且我按照这篇文章 https://github.com/facebook/react-native/issues/24261 中的所有更改,但在生产模式下每次仍然出现错误。有没有新的想法来解决它? - jocoders
请返回翻译后的文本:同样的@satheesh,我还应该检查什么? - Gaurav Roy
请启用Hermes。 - Satheesh
我有相同的问题,而且Hermes已启用。 - Lukáš Šálek
这个答案不应该被接受。我也遇到了同样的错误。启用Hermes后仍然崩溃。 - Stefan Majiros

7
如果您正在使用Webview并遇到问题,请在出现问题的屏幕中添加animationEnabled: false。
<Stack.Screen
        name="CampaygnsDetail"
        component={CampaygnsDetail}
        options={{
          animationEnabled: false,
        }}
        />

1
非常感谢你,你真的节省了我好几个小时的时间。 - Faisal Shaikh

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