Reactネイティブプロジェクトを反応ネイティブバージョン0.58.5から0.60.4に移行するプロセスに参加しています。
Androidの場合、私はここに記載されているすべての変更をやりました
私は私のアプリでhermesを無効にしましょうbuild.gradle
ファイル:
project.ext.react = [
entryFile: "index.js",
enableHermes: false, // clean and rebuild if changing
]
...
def jscFlavor = 'org.webkit:Android-jsc:+'
def enableHermes = project.ext.react.get("enableHermes", false);
...
dependencies {
...
if (enableHermes) {
println 'Hermes is enabled'
def hermesPath = "../../node_modules/hermesvm/Android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
println 'Hermes is disabled'
implementation jscFlavor
}
}
...
ビルド時にHermes is disabled
印刷を見ることができます。そしてこれはまさに私が欲しいものです。
React-Native Run-AndroidでAndroidアプリを起動するとき、起動時に次のクラッシュが得られます。
FATAL EXCEPTION: create_react_context
E Process: com.reactnativetestapp, PID: 21038
E Java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
E at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.Java:738)
E at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.Java:591)
E at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.Java:529)
E at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.Java:484)
E at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.Java:20)
E at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.Java:27)
E at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.Java:949)
E at Java.lang.Thread.run(Thread.Java:764)
いくつかの研究の後、私はエルメスを有効にしたいと思っている人々のためにこのクラッシュが発生することができ、それは間違った卒業構成を持っています: [0.60.3]エルメスを有効にするときの起動時のアプリクラッシュ(イネント) /
エルメスが無効になっている間にこのクラッシュを手に入れているのはなぜですか?
enableHermes
をtrue
に設定するときは、クラッシュは発生しません。
ダブルチェックここでのすべてのアップデートをお願いします https://react-native-community.github.io/Upgrade-helper/?from=0.59.9&to=0.60.5
Android/app/build.gradle
ファイルの移行に間違いを誤ったので、同じエラーがありました。