Expo开发React Native遇libhermes.so加载失败问题求助
解决Expo React Native真机上
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so错误 检查Expo SDK版本兼容性
部分旧版Expo SDK对Hermes的支持存在缺陷,优先确认当前SDK版本是否适配Hermes(SDK 44及以上版本对Hermes支持更稳定)。如果版本过低,执行expo upgrade [目标SDK版本号](比如expo upgrade 49)升级到兼容的稳定版。清理项目缓存
先执行expo r -c清除Expo的缓存并重启项目;再进入项目的android目录,执行./gradlew clean清理Android构建缓存,回到根目录后重新构建部署。确认app.json中的Hermes配置位置
确保Hermes的配置在expo.android节点下,而非根节点,正确配置示例:{ "expo": { "android": { "hermesEnabled": true } } }指定Android CPU架构适配
部分老旧真机仅支持特定CPU架构(如armeabi-v7a),可在app.json中添加架构过滤配置,确保Hermes库包含对应架构版本:{ "expo": { "android": { "hermesEnabled": true, "ndk": { "abiFilters": ["armeabi-v7a", "arm64-v8a", "x86_64"] } } } }尝试使用自定义开发客户端
Expo Go客户端可能和自定义项目的Hermes配置存在兼容性问题,可生成自定义开发客户端测试:- 执行
expo prebuild生成原生项目文件 - 用Android Studio打开
android目录,直接编译安装到真机上
- 执行
临时禁用Hermes排查问题
暂时将hermesEnabled设为false,重新构建项目。如果真机能正常运行,说明问题出在Hermes的适配环节;若仍报错,则需排查其他原生依赖的问题。
内容的提问来源于stack exchange,提问作者Tignar2
相关产品推荐
相关产品推荐

