首页 > 解决方案 > E/SoLoader:找不到要加载的 DSO:libjscexecutor.so

问题描述

我正在尝试将我的 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. 构建-gradle3.3.0
  3. gradle-4.10.1

下面是来自 Android Studio 的 logcat:

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)

标签: androidreact-native

解决方案


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


推荐阅读