首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >本机:java.lang.UnsatisfiedLinkError:无法找到要加载的DSO : libhermes.so

本机:java.lang.UnsatisfiedLinkError:无法找到要加载的DSO : libhermes.so
EN

Stack Overflow用户
提问于 2019-07-15 08:56:00
回答 25查看 62.8K关注 0票数 116

我刚刚更新了我的项目,以使用react原生版本0.60.2。但是当我试图在Android设备上运行一个应用程序时,它会在启动屏幕后崩溃。我得到了以下错误日志:

代码语言:javascript
复制
E/AndroidRuntime: FATAL EXCEPTION: create_react_context
    Process: com.tjspeed, PID: 3909
    java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.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.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20)
        at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:27)
        at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:949)
        at java.lang.Thread.run(Thread.java:760)

这里很少有建议:https://github.com/facebook/react-native/issues/25601,但不幸的是,这些建议都不适合我。请提出解决办法。

EN

回答 25

Stack Overflow用户

发布于 2019-07-25 12:43:48

在从0.59.8升级到0.60.4之后,我也遇到了同样的问题。

确保在您的app/build.gradle,中添加了所有这些行,特别是依赖项部分,因为这确保您有JSC二进制代码。

代码语言:javascript
复制
project.ext.react = [

...
    // your index js if not default, other settings
  // Hermes JSC ?
 enableHermes: false,

...
]

def jscFlavor = 'org.webkit:android-jsc:+'

def enableHermes = project.ext.react.get("enableHermes", false);

dependencies {

    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.facebook.react:react-native:+"  // From node_modules

    if (enableHermes) {
      // For RN 0.60.x
      def hermesPath = "../../node_modules/hermesvm/android/"

      // --- OR ----          

      // for RN 0.61+
      def hermesPath = "../../node_modules/hermes-engine/android/";


      debugImplementation files(hermesPath + "hermes-debug.aar")
      releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
      implementation jscFlavor
    }

编辑

此外,确保Hermes Maven repo位于根build.gradle中。

代码语言:javascript
复制
maven {
        // Android JSC is installed from npm
        url("$rootDir/../node_modules/jsc-android/dist")
    }
票数 66
EN

Stack Overflow用户

发布于 2020-01-20 03:52:04

我刚刚清理了android的构建文件夹,在那之后,它运行得很好。希望这能帮到伴侣。

代码语言:javascript
复制
cd android
./gradlew clean 
票数 47
EN

Stack Overflow用户

发布于 2019-07-24 03:27:50

我在project/build.gradle中的allProject块中添加了这个块,然后崩溃就消失了。

代码语言:javascript
复制
    maven {
        // Android JSC is installed from npm
        url("$rootDir/../node_modules/jsc-android/dist")
    }

我所做的是创建一个新的项目,使用,并浏览了android构建文件。幸运的是,这是我注意到并解决问题的第一个不同之处。我想如果这不管用的话你也可以这么做。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57036317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档