我刚刚更新了我的项目,以使用react原生版本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.<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,但不幸的是,这些建议都不适合我。请提出解决办法。
发布于 2019-07-25 12:43:48
在从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 repo位于根build.gradle中。
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}发布于 2020-01-20 03:52:04
我刚刚清理了android的构建文件夹,在那之后,它运行得很好。希望这能帮到伴侣。
cd android
./gradlew clean 发布于 2019-07-24 03:27:50
我在project/build.gradle中的allProject块中添加了这个块,然后崩溃就消失了。
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}我所做的是创建一个新的项目,使用,并浏览了android构建文件。幸运的是,这是我注意到并解决问题的第一个不同之处。我想如果这不管用的话你也可以这么做。
https://stackoverflow.com/questions/57036317
复制相似问题