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

React Native安卓生产应用崩溃:无法找到libhermes.so的DSO加载文件

生产环境Android设备加载libhermes.so失败的崩溃问题

问题背景

仅生产环境出现崩溃,开发机、真机、模拟器均无法复现。Firebase Crashlytics记录到该崩溃发生在OnePlus 8 Pro和Nexus 5X机型上,但Nexus 5X模拟器运行正常。

崩溃日志

Fatal Exception: java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libhermes.so SoSource 0: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-main flags = 1] 
SoSource 1: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-0 flags = 
1] SoSource 2: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-1 
flags = 1] SoSource 3: com.facebook.soloader.ApkSoSource[root = 
/data/data/com.hzppapp/lib-2 flags = 1] SoSource 4: 
com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-3 flags = 1] SoSource 
5: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-4 flags = 1] 
SoSource 6: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-5 flags = 
1] SoSource 7: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-6 
flags = 1] SoSource 8: com.facebook.soloader.ApkSoSource[root = 
/data/data/com.hzppapp/lib-7 flags = 1] SoSource 9: 
com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-8 flags = 1] SoSource 
10: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-9 flags = 1] 
SoSource 11: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-10 flags = 
1] SoSource 12: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-11 
flags = 1] SoSource 13: com.facebook.soloader.ApkSoSource[root = 
/data/data/com.hzppapp/lib-12 flags = 1] SoSource 14: 
com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-13 flags = 1] 
SoSource 15: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-14 flags 
= 1] SoSource 16: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-15 
flags = 1] SoSource 17: com.facebook.soloader.ApkSoSource[root = 
/data/data/com.hzppapp/lib-16 flags = 1] SoSource 18: 
com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-17 flags = 1] 
SoSource 19: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-18 flags 
= 1] SoSource 20: com.facebook.soloader.ApkSoSource[root = /data/data/com.hzppapp/lib-19 
flags = 1] SoSource <truncated: 6863 chars>

package.json 内容

{  
  "name": "xxx",  
  "version": "2.3.2",  
  "private": true,  
  "scripts": {    
    "android": "react-native run-android",    
    "ios": "react-native run-ios --simulator='iPhone 15 Pro'",    
    "start": "react-native start",    
    "test": "jest",    
    "lint": "eslint . --ext .js,.jsx,.ts,.tsx"  
  },  
  "dependencies": {    
    "@gorhom/bottom-sheet": "^4.6.0",    
    "@react-native-async-storage/async-storage": "^1.17.11",    
    "@react-native-firebase/analytics": "^18.8.0",    
    "@react-native-firebase/app": "^18.8.0",    
    "@react-native-firebase/crashlytics": "^18.8.0",    
    "@react-native-firebase/database": "^18.8.0",    
    "@react-navigation/native": "^6.1.1",    
    "@react-navigation/native-stack": "^6.9.7",    
    "axios": "^1.2.2",    
    "react": "18.1.0",    
    "react-native": "0.70.6",    
    "react-native-base64": "^0.2.1",    
    "react-native-date-picker": "^4.2.6",    
    "react-native-device-info": "^10.11.0",    
    "react-native-gesture-handler": "^2.14.1",    
    "react-native-google-mobile-ads": "^10.3.2",    
    "react-native-in-app-review": "^4.2.1",    
    "react-native-linear-gradient": "^2.6.2",    
    "react-native-reanimated": "2.17.0",    
    "react-native-safe-area-context": "^4.4.1",    
    "react-native-screens": "^3.18.2",    
    "react-native-searchable-dropdown": "^1.1.3",    
    "react-native-svg": "^13.6.0",    
    "react-native-webview": "^13.6.2",    
    "recoil": "^0.7.6"  
  },  
  "devDependencies": {    
    "@babel/core": "^7.12.9",    
    "@babel/runtime": "^7.12.5",    
    "@react-native-community/eslint-config": "^2.0.0",    
    "@tsconfig/react-native": "^2.0.2",    
    "@types/base-64": "^1.0.2",    
    "@types/jest": "^26.0.23",    
    "@types/react": "^18.0.21",    
    "@types/react-native": "^0.70.6",    
    "@types/react-native-base64": "^0.2.2",    
    "@types/react-test-renderer": "^18.0.0",    
    "@typescript-eslint/eslint-plugin": "^5.37.0",    
    "@typescript-eslint/parser": "^5.37.0",    
    "babel-jest": "^26.6.3",    
    "eslint": "^7.32.0",    
    "jest": "^26.6.3",    
    "metro-react-native-babel-preset": "0.72.3",    
    "react-test-renderer": "18.1.0",    
    "typescript": "^4.8.3"  
  },  
  "jest": {    
    "preset": "react-native",    
    "moduleFileExtensions": [      
      "ts",      
      "tsx",      
      "js",      
      "jsx",      
      "json",      
      "node"    
    ]  
  }
}

解决方案

1. 检查ABI拆分配置

生产打包若开启ABI拆分,需确保目标机型对应的ABI库被正确打包。在android/app/build.gradle中确认:

android {
    splits {
        abi {
            enable true
            reset()
            include 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
            universalApk true
        }
    }
}

开启universalApk可生成包含所有ABI库的通用安装包,避免机型适配遗漏。

2. 调整Soloader加载逻辑

修改android/app/src/main/java/com/[你的包名]/MainApplication.java,手动指定库加载路径:

import com.facebook.soloader.SoLoader;

@Override
public void onCreate() {
    super.onCreate();
    SoLoader.init(this, false);
    try {
        SoLoader.loadLibrary("hermes");
    } catch (UnsatisfiedLinkError e) {
        e.printStackTrace();
    }
}

3. 清理缓存后重新打包

执行以下命令彻底清理构建缓存并重新生成签名包:

cd android && ./gradlew clean
./gradlew assembleRelease

检查输出APK的lib/目录下是否包含对应ABI的libhermes.so文件。

4. 确认Hermes启用状态

在android/app/build.gradle中确保Hermes已启用:

project.ext.react = [
    enableHermes: true
]

若曾切换过Hermes引擎,缓存残留可能导致打包异常,需清理后重新构建。

5. 老旧机型兼容处理

Nexus 5X系统版本较低,可尝试:

  • 升级react-native到0.70.x系列最新补丁版
  • 在AndroidManifest.xml的<application>标签中添加android:extractNativeLibs="true",确保Native库被正确解压

内容的提问来源于stack exchange,提问作者Matko Setnik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:07:03