React Native从0.67升级到0.69后构建Android应用报错:找不到libreanimated.so库求助
libreanimated.so缺失问题 我之前升级RN版本的时候也碰到过一模一样的错误,这个问题大多和Reanimated库的版本兼容、构建缓存或者配置遗漏有关,下面是几个亲测有效的解决步骤:
检查并升级Reanimated到兼容版本
React Native 0.69对依赖库的版本有明确要求,Reanimated 2.x的部分旧版本和RN 0.69不兼容。先打开你的package.json查看react-native-reanimated的版本,建议升级到适配RN 0.69的最新稳定版(比如2.9.1及以上),执行命令:npm install react-native-reanimated@latest # 或者用yarn yarn add react-native-reanimated@latest彻底清理构建缓存与依赖
旧缓存经常会导致这类链接错误,按顺序执行以下命令:# 清理Android构建缓存 cd android && ./gradlew clean # 回到根目录,删除旧依赖和锁文件 cd .. && rm -rf node_modules && rm package-lock.json yarn.lock # 重新安装依赖 npm install # 重新构建项目 npx react-native run-android配置Android NDK的ABI过滤
打开android/app/build.gradle,在defaultConfig块中添加NDK的ABI配置,确保Reanimated编译的库能覆盖目标设备的架构:defaultConfig { // ... 你的其他配置 ndk { abiFilters "armeabi-v7a", "x86", "x86_64", "arm64-v8a" } }验证Gradle版本兼容性
RN 0.69需要搭配特定版本的Android Gradle插件,打开android/build.gradle,确保dependencies里的classpath版本正确:dependencies { classpath("com.android.tools.build:gradle:7.0.4") // ... 其他classpath依赖 }同时确认gradle wrapper的版本(
gradle/wrapper/gradle-wrapper.properties里的distributionUrl)是gradle-7.0.2-all.zip左右,这是RN 0.69对应的版本。检查模拟器/设备的ABI架构
如果是在模拟器上测试,确保使用的是支持的ABI镜像(比如x86_64或arm64-v8a),部分老旧的模拟器镜像可能无法正确加载新编译的库,建议创建一个新的模拟器并选择最新的系统镜像。
如果以上步骤都试过还是不行,可以查看Android构建的详细日志(执行./gradlew assembleDebug --info),看看Reanimated在编译过程中有没有报错,定位具体的问题点。
内容的提问来源于stack exchange,提问作者User511

