React Native升级至0.76.2后安卓运行时Native库缺失报错求助
解决React Native 0.76.2安卓运行时so库缺失问题
1. 彻底清理构建缓存
- 进入安卓目录执行gradle清理:
cd android && ./gradlew clean - 删除安卓本地构建产物目录:
rm -rf android/app/build android/build - 清理React Native全局缓存:
npx react-native clean
2. 检查ABI架构配置
打开android/app/build.gradle,确保defaultConfig下的ndk配置包含React Native支持的架构,避免因架构过滤导致so库未打包:
android { defaultConfig { ndk { abiFilters "armeabi-v7a", "arm64-v8a", "x86_64" } } }
同时检查packagingOptions是否存在错误的排除规则,比如是否误删了so文件:
packagingOptions { // 确保没有类似下面的排除规则 // exclude "lib/**/*.so" }
3. 确认依赖版本与完整性
- 检查
package.json中react-native版本是否为0.76.2,执行依赖重装:npm install # 或 yarn install - 打开
android/build.gradle,确认ext中的reactNativeVersion与package.json一致:buildscript { ext { reactNativeVersion = "0.76.2" } } - 检查
android/app/build.gradle中React Native依赖引用正确:implementation "com.facebook.react:react-native:${reactNativeVersion}"
4. 确保新架构与Hermes禁用彻底
- 打开
android/gradle.properties,确认:newArchEnabled=false - 打开
android/app/build.gradle,配置React Native引擎参数:project.ext.react = [ enableHermes: false, newArchEnabled: false ] - 检查
MainApplication.java,确保ReactNativeHost的引擎配置正确:private final ReactNativeHost mReactNativeHost = new DefaultReactNativeHost(this) { // ... 其他配置 @Override protected boolean isNewArchEnabled() { return false; } @Override protected boolean isHermesEnabled() { return false; } };
5. 验证NDK版本兼容性
React Native 0.76.2要求NDK版本为25.2.9519653,打开android/local.properties确认配置:
ndkVersion=25.2.9519653
若本地无该版本,通过Android Studio的SDK Manager安装对应NDK。
6. 重新构建并检查日志
执行重新构建命令,查看构建日志中是否有so库打包的相关信息:
npx react-native run-android --variant=debug
如果是release版本,替换--variant=debug为--variant=release。
内容的提问来源于stack exchange,提问作者Jerry_0x04bc
相关产品推荐
相关产品推荐

