React Native升级Android 14遇libhermes.so缺失运行时错误求助
解决React Native升级Android 14后libhermes.so找不到的问题
这个错误是由于react-native-reanimated 2.17.0与React Native 0.71.x在Android 14环境下的依赖加载兼容性问题导致的,libreanimated.so无法找到依赖的libhermes.so。以下是针对性的解决方案:
1. 配置ABI过滤规则
打开android/app/build.gradle,在defaultConfig中明确指定支持的ABI架构,确保覆盖测试设备的架构类型:
android { defaultConfig { ndk { abiFilters "arm64-v8a", "armeabi-v7a" } } }
同时检查android/build.gradle,避免存在全局覆盖ABI配置的代码。
2. 升级react-native-reanimated到兼容版本
react-native-reanimated 2.17.0对Android 14的支持存在缺陷,建议升级到2.x分支的稳定版本(如2.17.5)或3.x分支(需RN 0.70+,你的版本符合要求):
npm install react-native-reanimated@2.17.5 --save # 或使用yarn:yarn add react-native-reanimated@2.17.5
安装完成后执行cd android && ./gradlew clean清理Android构建缓存。
3. 确保Hermes引擎优先加载
修改android/app/src/main/java/com/[你的项目包名]/MainApplication.java,确保Hermes引擎初始化逻辑正确,且在Reanimated之前加载:
import com.facebook.react.bridge.JSIModulePackage; import com.swmansion.reanimated.ReanimatedJSIModulePackage; import com.facebook.react.hermes.HermesExecutorFactory; import com.facebook.react.bridge.JavaScriptExecutorFactory; @Override protected JavaScriptExecutorFactory getJavaScriptExecutorFactory() { return new HermesExecutorFactory(); } @Override protected JSIModulePackage getJSIModulePackage() { return new ReanimatedJSIModulePackage(); }
4. 彻底清理缓存并重新构建
执行以下命令清除所有缓存并重新构建项目,避免旧缓存干扰:
# 清除npm缓存 npm cache clean --force # 清除Android构建缓存 cd android && ./gradlew clean cd .. # 重置依赖 rm -rf node_modules package-lock.json npm install # 重新运行项目 npx react-native run-android
5. 检查AndroidManifest配置
确保AndroidManifest.xml中targetSdkVersion 34对应的权限(如POST_NOTIFICATIONS)已正确声明,同时避免错误的命名空间配置,排除潜在的环境干扰。
内容的提问来源于stack exchange,提问作者Hansraj shokal
相关产品推荐
相关产品推荐

