React-Native: java.lang.UnsatisfiedLinkError: 找不到要加载的DSO:libhermes.so
React-Native: java.lang.UnsatisfiedLinkError: 找不到要加载的DSO:libhermes.so
我刚刚更新了我的项目,使用的是react-native版本0.60.2。但是当我试图在Android设备上运行应用程序时,在启动屏幕后它会崩溃。我收到以下错误日志:
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.(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,但不幸的是,他们都没有对我起作用。请提供解决方法。
admin 更改状态以发布 2023年5月25日
我在从0.59.8升级到0.60.4后遇到了同样的问题。
请确保你在你的app/build.gradle中添加了所有这些行,特别是依赖部分,因为这样可以确保你有JSC二进制文件。
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仓库在你的根build.gradle中。
maven { // Android JSC is installed from npm url("$rootDir/../node_modules/jsc-android/dist") }