react-native: couldn't find DSO to load: libhermes.so (hermes disabled)
Description
I’m getting error reports for couldn’t find DSO to load: libhermes.so
I have hermes disabled but still seems to be tripping up my build.
com.facebook.soloader.SoLoader.doLoadLibraryBySoName (SoLoader.java:738) com.facebook.soloader.SoLoader.loadLibraryBySoName (SoLoader.java:591) com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:529) com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:484) com.facebook.hermes.reactexecutor.HermesExecutor.<clinit> (HermesExecutor.java:20) com.facebook.hermes.reactexecutor.HermesExecutorFactory.create (HermesExecutorFactory.java:27) com.facebook.react.ReactInstanceManager$5.run (ReactInstanceManager.java:952) java.lang.Thread.run (Thread.java:818)
React Native version:
System: OS: macOS 10.15.6 CPU: (6) x64 Intel® Core™ i5-8500B CPU @ 3.00GHz Memory: 207.63 MB / 16.00 GB Shell: 5.7.1 - /bin/zsh Binaries: Node: 13.6.0 - /usr/local/bin/node npm: 6.13.4 - /usr/local/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman SDKs: iOS SDK: Platforms: iOS 13.6, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2 Android SDK: API Levels: 28, 29 Build Tools: 28.0.3, 29.0.2 System Images: android-18 | Google APIs Intel x86 Atom, android-19 | Google APIs Intel x86 Atom, android-21 | Google APIs Intel x86 Atom, android-28 | Intel x86 Atom_64, android-28 | Google APIs Intel x86 Atom, android-29 | Google APIs Intel x86 Atom, android-29 | Google Play Intel x86 Atom IDEs: Android Studio: 3.6 AI-192.7142.36.36.6392135 Xcode: 11.6/11E708 - /usr/bin/xcodebuild npmPackages: react: 16.9.0 => 16.9.0 react-native: 0.61.5 => 0.61.5
Steps To Reproduce
Been unable to reproduce but have the error on a range of device and android os versions from 6 to 10.
Expected Results
Snack, code example, screenshot, or link to a repository:
Seen other report this issue when are trying to use Hermes and tried to make their fixes but was not resolved it for when i am not using hermes
android/app/build.gradle
project.ext.react = [
entryFile: "index.js",
enableHermes: false, // clean and rebuild if changing
]
def jscFlavor = 'org.webkit:android-jsc:+'
def enableHermes = project.ext.react.get("enableHermes", false);
dependencies {
if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
android/build.gradle
allprojects {
repositories {
google()
jcenter()
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
maven { url 'https://jitpack.io' }
}
}
Any help on this would be greatly appreciated.
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 10
- Comments: 23 (2 by maintainers)
This is because SOLoader is absent.
Ensure
implementation'com.facebook.soloader:soloader:0.9.0+'
is added under dependencies in android/app/build.gradlle
clean your build
cd android
./gradlew clean
Try bundling
./gradlew bundleRelease
Exit android folder
cd ../
Try running
npx react-native run-android --variant=release
In my case I needed to add hermes path for each android build type
Thanks, man. That’s solved my issue (I had to pass
releaseStagingImplementation files(hermesPath + "hermes-release.aar")
Thank you SO much @Michaelvons, that works perfectly!
I have implemented and gone through 2 releases without seeing the issue. I’m going to list the changes between a new RN project and mine if that helps anyone
I also added to android/app/build.gradle a soloader library update
In android/app/build.gradle deleted dexOptions & multiDexEnabled
In android/build.gradle moved google() & jcenter()
android/gradle/wrapper/gradle-wrapper.properties updated gradlew
android/settings.gradle moved include:‘app’
Thanks @zhubinsheng for your help, much appreciated!
Can confirm that the exact same issue exists in 0.63.2 as well