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

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

我尝试过的

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

  • 我的环境(您可能想知道的事情?):
  • NDK-r19c
  • build-gradle3.3.0
  • 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)
    

    最佳答案

    只需升级SOLoader。
    android/app/build.gradle中:implementation 'com.facebook.soloader:soloader:0.9.0+'此处有更多详细信息和讨论:https://github.com/facebook/react-native/issues/25537

    08-17 21:18