我正在将React Native项目从react-native版本0.58.5迁移到0.60.4。
对于Android部分,我已经完成了上面提到的所有更改here
我让爱马仕在我的应用程序中禁用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)
经过一些研究,我可以看到这个崩溃发生的人想要启用爱马仕,并有一个错误的gradle配置:[0.60.3] App crash on startup when enabling Hermes (enableHermes: true)
为什么爱马仕被禁用时我会遇到这种崩溃?
请注意,将enableHermes
设置为true
时,不会发生崩溃。
6条答案
按热度按时间06odsfpq1#
在完成本文中的这些步骤后,我通过一个微小的改变解决了这个问题
https://github.com/facebook/react-native/issues/25415
然后确保将此jsc-android块添加到您的android/build.gradle:
mnemlml82#
您可以通过将configurations.all添加到您的build.gradle中来使用旧版本的com.facebook.soloader:soloader
就像这幢楼Gradle
如果以上步骤无效,请执行以下步骤
应用程序/构建版本.gradle.
我们还将以下内容添加到app/build.gradle中的defaultConfig
oug3syen3#
请再次检查此处的所有更新-https://react-native-community.github.io/upgrade-helper/?from=0.59.9&to=0.60.5
我有同样的错误,因为在
android/app/build.gradle
文件的迁移中犯了一个错误。kadbb4594#
我通过以下步骤解决了这个问题
1.安装hermesvm:npm和Hermesvm公司
1.安装jsc-android:npm i jsc-安卓系统
3.将此行添加到app/build.gradle
1.将此jsc-android块添加到您android/build.gradle中:
x8goxv8g5#
android11用户通常会遇到这些错误
在您的项目级build.gradle中,添加以下代码片段
flvtvl506#
我在我的Android 10用户应用程序中也遇到了同样的问题。
我改了这个
进入
我还让爱马仕
我的packagingOptions如下所示: