7

I have got this error at startup ONLY when testing my react native app on Firebase Test Lab (Robo)

java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so

Tested on several devices with different API, it works only on API 21 and 22. Curiously, the app passes all the tests on the Play Store Prelaunch Report.

Actually the most surprising is that I do not use hermes but JSC. The error appears only when I upload an aab (gradlew bundleRelease). It goes well when I upload an universal apk (gradlew assembleRelease).

Here is my package.json

{
  "name": "",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "@react-native-community/netinfo": "^4.1.4",
    "@redux-offline/redux-offline": "^2.5.2-native.0",
    "buffer": "^5.4.2",
    "hermes-engine": "^0.2.1",
    "jsc-android": "^241213.1.0",
    "prop-types": "^15.7.2",
    "react": "16.8.6",
    "react-native": "0.60.4",
    "react-native-animatable": "^1.3.2",
    "react-native-bootsplash": "^0.1.1",
    "react-native-device-info": "^3.0.1",
    "react-native-elements": "^1.1.0",
    "react-native-extended-stylesheet": "^0.12.0",
    "react-native-firebase": "^5.5.6",
    "react-native-fs": "^2.14.1",
    "react-native-navigation": "^3.1.2",
    "react-native-offline": "^4.3.0",
    "react-native-render-html": "^4.1.2",
    "react-native-smooth-pincode-input": "^1.0.7",
    "react-native-svg": "^9.9.3",
    "react-native-svg-charts": "^5.3.0",
    "react-native-timer": "^1.3.6",
    "react-native-uuid": "^1.4.9",
    "react-native-vector-icons": "^6.6.0",
    "react-redux": "^7.1.0",
    "redux": "^4.0.4",
    "redux-logger": "^3.0.6",
    "redux-persist": "^5.10.0",
    "redux-saga": "^1.0.5"
  },
  "devDependencies": {
    "@babel/core": "7.5.5",
    "@babel/runtime": "7.5.5",
    "@react-native-community/eslint-config": "0.0.3",
    "babel-jest": "24.8.0",
    "eslint": "6.1.0",
    "jest": "24.8.0",
    "metro-react-native-babel-preset": "0.54.1",
    "react-test-renderer": "16.8.6",
    "redux-devtools-extension": "^2.13.8"
  },
  "jest": {
    "preset": "react-native"
  }
}

Thanks for your help.

Gilles
  • 71
  • 1
  • 2
  • Same here RN 0.60.5 – chenop Oct 01 '19 at 05:28
  • Relevant discussion here: https://github.com/facebook/react-native/issues/26075 – chenop Oct 01 '19 at 05:31
  • React Native will [try to autodetect](https://github.com/facebook/react-native/blob/60e00d9d96d7b186c1d4c1542caddc1b74eeb3da/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java#L295) whether you're using JSC or Hermes by attempting to load the relevant libraries. You can [manually specify](https://github.com/facebook/react-native/blob/60e00d9d96d7b186c1d4c1542caddc1b74eeb3da/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java#L77) a JSCExecutorFactory to aid debugging, since it won't try to fall back. – that other guy Oct 01 '19 at 22:24

0 Answers0