You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native构建成功后App崩溃 libfolly_json.so缺失如何解决

问题根因

从崩溃日志可以直接定位问题:React Native 动画库 react-native-reanimated 加载原生so库时,找不到它依赖的 libfolly_json.so 文件,触发java.lang.UnsatisfiedLinkError导致应用直接崩溃。这类问题属于运行时原生依赖加载错误,构建阶段不会做全量so依赖校验,因此编译打包时不会报任何错误。

解决步骤

按优先级从高到低依次排查:

  • 首先核对react-native-reanimated版本和你项目使用的React Native版本是否匹配,版本不兼容是这类问题的最高发原因。比如RN 0.72+对应reanimated 3.3+版本,RN 0.70对应reanimated 2.13.x版本,跨大版本匹配很容易出现so依赖不匹配的问题。调整完版本后先执行cd android && ./gradlew clean清空旧构建缓存,再重新打包。
  • 检查Android端打包配置,确认没有错误排除folly相关so文件。打开android/app/build.gradle文件,找到packagingOptions(高版本AGP对应packaging)配置块,检查是否存在exclude '**/libfolly_json.so'这类规则,存在的话直接删除。
  • 如果你配置了NDK架构过滤,确认所有目标架构的so依赖完整。比如你写了ndk { abiFilters "arm64-v8a", "armeabi-v7a" },要确保所有原生依赖都提供了对应架构的so包,不要只配置了过滤规则但缺失对应架构的依赖文件。调试阶段如果用模拟器,可以临时把x86、x86_64架构加到abiFilters里覆盖模拟器运行场景。
  • 如果是升级RN或者reanimated版本后出现的问题,直接清空所有缓存重试:删除项目根目录的node_modules文件夹,删除android/.gradle缓存目录,重新执行包管理工具安装依赖(npm install或yarn install),再全量构建安装包,不要用增量编译的缓存包测试。
  • 如果开了R8/ProGuard代码混淆压缩,在android/app/proguard-rules.pro里添加如下规则,避免相关类和so被错误裁剪:
-keep class com.swmansion.reanimated.** { *; }
-keep class com.facebook.jni.** { *; }

注意:不要手动从网上下载来源不明的libfolly_json.so塞进项目jniLibs目录,folly库版本和React Native版本是强绑定关系,手动导入版本不匹配的so会触发更隐蔽的原生层内存崩溃。

内容的提问来源于stack exchange,提问作者Anoop B.K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 09:45:33