React Native启动报错libhermes.so缺失 多种方案尝试无效求解决
修复方案
根因说明
报错核心是Flipper调试工具的JS性能分析组件依赖的libjsijniprofiler.so需要加载libhermes.so,但打包时对应架构的libhermes.so未被正确打包进APK,你项目中已经开启了Hermes引擎,只是存在几处配置冲突导致so文件缺失。
操作步骤
- 清理重复依赖:你在app级build.gradle的dependencies块中重复引入了soloader,删除
implementation "com.facebook.soloader:soloader:0.9.0+",仅保留implementation 'com.facebook.soloader:soloader:0.10.1'即可,版本冲突会直接导致so加载逻辑异常。 - 补全NDK架构过滤:取消defaultConfig中ndk块的注释,覆盖所有你需要兼容的架构,包含报错对应的x86模拟器架构:
ndk { abiFilters 'armeabi-v7a', 'x86', 'arm64-v8a', 'x86_64' }
- 调整打包规则:修改packagingOptions配置,补充so文件去重规则,避免同名so被过滤:
packagingOptions { pickFirst 'lib/*/libjsc.so' pickFirst 'lib/*/libc++_shared.so' pickFirst 'lib/*/libhermes.so' }
- 强制Hermes引擎全变体生效:在dependencies块中额外添加全局Hermes依赖,避免debug/release构建变体出现so缺失:
implementation "com.facebook.react:hermes-engine:+"
- 全量清理重建项目,执行以下命令:
rm -rf node_modules && yarn install cd android && ./gradlew cleanBuildCache clean cd .. && react-native start --reset-cache react-native run-android
- 若上述操作后仍报错,可临时禁用Flipper的JS性能分析组件,在
android/gradle.properties中添加如下配置即可:
FLIPPER_DISABLE_JS_PROFILER=true
内容的提问来源于stack exchange,提问作者UnknownFrequency
相关产品推荐
相关产品推荐

