E / SoLoader:找不到要加载的DSO:libjscexecutor.so

时间:2019-06-10 09:48:03

标签: android react-native

我正在尝试将ReactNative应用程序升级到RN0.59.9。像往常一样,一切都可以在iOS上正常运行(管理为64位),但是Android不能让我失望。

我能够构建和生成调试变量工件,但是由于libjscexecutor.so,启动屏幕后我的应用程序崩溃了。

我尝试过的事情:

  1. 解压缩apk,以检查Lib文件夹是否32bit和64bit具有相同数量的* .so文件([arm64-v8a / armeabi-v7a / x86 / x86_64全部具有相同的文件,只有[armeabi]是不同的。[armeabi]仅保存一个* .so文件)
  2. 试图只构建32位应用程序,但是即使在32位应用程序中,我也面临同样的问题
  3. 删除node_modules,清除纱线缓存,安装纱线

我的环境(您可能想知道的事情?):

  1. NDK-r19c
  2. build-gradle3.3.0
  3. gradle-4.10.1

以下是来自Android Studio的日志记录:

2019-06-10 17:09:29.754 23343-23665/com.bundle.id E/SoLoader: couldn't find DSO to load: libjscexecutor.so
2019-06-10 17:09:29.755 23343-23665/com.bundle.id E/AndroidRuntime: FATAL EXCEPTION: create_react_context
    Process: com.bundle.id, PID: 23343
    java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libjscexecutor.so
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:738)
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:591)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:529)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:484)
        at com.facebook.react.jscexecutor.JSCExecutor.<clinit>(JSCExecutor.java:19)
        at com.facebook.react.jscexecutor.JSCExecutorFactory.create(JSCExecutorFactory.java:29)
        at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:944)
        at java.lang.Thread.run(Thread.java:764)

2 个答案:

答案 0 :(得分:1)

运行 ./gradlew clean 然后再次构建。 Reference

答案 1 :(得分:0)

只需升级SOLoader。

android/app/build.gradle中:

implementation 'com.facebook.soloader:soloader:0.9.0+'

此处有更多详细信息和讨论:https://github.com/facebook/react-native/issues/25537