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

React Native从65.3升级到79.1后Android端启动崩溃,报UnsatisfiedLinkError找不到libreactnativejni.so等库的解决方案咨询

React Native从65.3升级到79.1后Android端启动崩溃,报UnsatisfiedLinkError找不到libreactnativejni.so等库的解决方案咨询

大家好,我最近把React Native项目从65.3版本严格跟着RN升级助手一步步升级到了79.1,现在项目能成功构建,但一启动就崩溃。我用adb logcat抓取了崩溃日志,核心错误提示是:

java.lang.UnsatisfiedLinkError: could find DSO to load: libreactnativejni.so

之后我展开了一系列排查,过程和遇到的困境如下:

  • 首先翻遍了Stack Overflow上的相关问题,试了所有提到的解决方案,但都没能解决问题
  • 后来看到一篇技术博客,里面点出了关键原因:Android系统无法同时加载32位和64位的原生库。如果项目依赖里至少有一个支持ARM64架构,另一个却仅支持ARM32,系统会先加载ARM64的依赖,之后直接拒绝加载仅支持ARM32的库,最终导致应用崩溃
  • 博客里给出的解决方案是将APK中所有64位二进制文件排除,但我这么操作后,设备直接提示:This app isn't compatible with the latest Android version. Check for an update or contact the app developer. 这显然不可行,因为我必须支持ARM64设备,不然在ARM64架构的真机或模拟器上都无法打开应用
  • 我还看到另一篇Stack Overflow回答,提到这是React Native存在了两年的已知问题

现在我的思路是:移除所有仅支持ARM32的第三方包,让所有依赖统一支持ARM64架构。目前我已经梳理出一批确认支持ARM64的包:

  • /react-native/ReactAndroid/
  • /react-native/ReactCommon/
  • /react-native/React/Fabric/AppleEventBeat.cpp
  • /react-native-webview/
  • /@react-native-picker/
  • /react-native-screenguard/
  • /react-native-tts/
  • /react-native-safe-area-context/
  • /react-native-video/
  • /@react-native-community/netinfo/
  • /react-native-share/
  • /react-native-linear-gradient/
  • /react-native-screens/
  • /react-native-svg/
  • /react-native-gesture-handler/
  • /@react-native-async-storage/

我是通过以下命令查找项目中的C++文件,以此判断包是否支持ARM64架构的:

find . -type f \( -name "*.cpp" -o -name "*.cc" -o -name "*.cxx" -o -name "*.c++" \)

现在我有几个疑问想请教大家:

  1. 我的思路是否正确?是不是必须移除所有仅支持ARM32的依赖才能彻底解决这个问题?
  2. 有没有高效的方法能快速定位出项目里哪些第三方包是仅支持ARM32架构的?
  3. 除了移除ARM32依赖之外,还有没有其他更优的解决方案?

附完整的崩溃日志:

06-05 08:52:58.171 16349 16349 E AndroidRuntime: Process: com.client.sagly032721, PID: 16349
06-05 08:52:58.171 16349 16349 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "libreact_featureflagsjni.so" not found
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at java.lang.System.loadLibrary(System.java:1661)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at com.facebook.soloader.nativeloader.SystemDelegate.loadLibrary(SystemDelegate.java:24)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:52)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:30)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:805)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsCxxInterop.<clinit>(ReactNativeFeatureFlagsCxxInterop.kt:28)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsCxxAccessor.override(ReactNativeFeatureFlagsCxxAccessor.kt:475)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at com.facebook.react.internal.featureflags.ReactNativeFeatureFlags.override(ReactNativeFeatureFlags.kt:316)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load(DefaultNewArchitectureEntryPoint.kt:57)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load$default(DefaultNewArchitectureEntryPoint.kt:35)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at com.client.sagly032721.MainApplication.onCreate(MainApplication.kt:80)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1316)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6998)
06-05 08:52:58.171 16349 16349 E AndroidRuntime:  at android.app.ActivityThread.-$$Nest$mhandleBindApplicatio

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 07:59:31