反応ネイティブバージョン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 残念ながら、どれも私にとってうまくいきませんでした。回避策を提案してください。
私の場合、app/build.gradle
でenableHermes
をオンにするだけです。
project.ext.react = [
entryFile : "index.js",
enableHermes: true, // HERE!
]
App/build.gradle内のndkオブジェクトを置き換えてみてください
defaultConfig {
...
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
古いバージョンのReact Native、0.60より前のpackage.json
より新しいバージョンが定義されていました(ポスト0.60)。
私の場合、エルメスは有効化されていませんでしたが、このエラーが発生しました。クリーニング(Android Studioを使用)および再構築により、エラーが解決しました。