React Native 0.76.3启用Hermes缺失libhermes_executor.so问题求助
React Native 0.76.3 + Hermes 0.11.0:libhermes_executor.so缺失导致崩溃问题
运行时崩溃错误:
java.lang.UnsatisfiedLinkError: dlopen failed: library "libhermes_executor.so" not found应用启动后立即崩溃,已尝试多类方案仍未解决。
环境配置
React Native version: 0.76.3 Hermes version: 0.11.0 NDK version: 25.2.9519653 Android Gradle Plugin version: 8.1.1 Hermes enabled: true (set in gradle.properties) Device architecture: arm64-v8a
已尝试的排查步骤
1. 验证Hermes配置与APK内容
执行命令检查APK中的Hermes相关库:
unzip -l android/app/build/outputs/apk/debug/app-debug.apk | grep hermes
输出结果:
3680024 01-01-1981 01:01 lib/arm64-v8a/libhermes.so 894384 01-01-1981 01:01 lib/arm64-v8a/libhermestooling.so 2419020 01-01-1981 01:01 lib/armeabi-v7a/libhermes.so 533244 01-01-1981 01:01 lib/armeabi-v7a/libhermestooling.so
发现libhermes_executor.so完全缺失
2. 重新安装依赖
- 卸载并重装指定版本的hermes-engine:
npm uninstall hermes-engine npm install hermes-engine@0.11.0 --save
- 清空node_modules并重装所有依赖:
rm -rf node_modules npm install
3. 确认NDK配置
- 在
android/build.gradle中明确指定NDK版本:
ext { ndkVersion = "25.2.9519653" }
- 验证
local.properties中NDK路径配置正确:
ndk.dir=/path/to/android/ndk
4. 配置打包选项
在android/app/build.gradle中添加打包规则,强制包含目标库文件:
packagingOptions { pickFirst 'lib/arm64-v8a/libhermes.so' pickFirst 'lib/arm64-v8a/libhermes_executor.so' pickFirst 'lib/arm64-v8a/libhermestooling.so' pickFirst 'lib/armeabi-v7a/libhermes.so' pickFirst 'lib/armeabi-v7a/libhermes_executor.so' pickFirst 'lib/armeabi-v7a/libhermestooling.so' }
当前状态
所有步骤执行后,崩溃错误依旧存在,APK中仍未包含libhermes_executor.so,推测是Hermes与React Native集成过程中存在配置异常或依赖加载故障。
待解决问题
- 如何确保
libhermes_executor.so被正确打包进APK? - 有没有可靠的方法调试Hermes打包流程,确认所有必要的.so文件都被包含?
- 是否有其他开发者遇到过React Native 0.76.x + Hermes 0.11.0的同款问题?如有,解决方案是什么?
内容的提问来源于stack exchange,提问作者Ajay Gaur
相关产品推荐
相关产品推荐

