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

Tom*_*ong 10 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,清除yarn缓存,yarn安装

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

  1. NDK-r19c
  2. build-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)
Run Code Online (Sandbox Code Playgroud)

Chi*_*for 8

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


小智 6

只需升级 SOLoader 即可。

android/app/build.gradle

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

更多细节和讨论在这里:https://github.com/facebook/react-native/issues/25537