Repository navigation
SoLoaderDSONotFoundError: couldn't find DSO to load: libreactnative.so #55637
Copy link
Copy link
Open
Labels
Needs: Author FeedbackNeeds: ReproThis issue could be improved with a clear list of steps to reproduce the issue.This issue could be improved with a clear list of steps to reproduce the issue.
Description
Description
Description
continuation of #49111 & #55562 which was closed without resolution, even though many others have the same issue.
it crash on multiple real android devices on production, particularly android 11 & 12.
Steps to reproduce
run app
React Native Version
0.83.1
Affected Platforms
Runtime - Android
Output of npx @react-native-community/cli info
System:
OS: macOS 15.5
CPU: (8) arm64 Apple M1
Memory: 125.44 MB / 16.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 24.13.0
path: /Users/sst/.nvm/versions/node/v24.13.0/bin/node
Yarn:
version: 1.22.22
path: /Users/sst/.nvm/versions/node/v24.13.0/bin/yarn
npm:
version: 11.6.2
path: /Users/sst/.nvm/versions/node/v24.13.0/bin/npm
Watchman: Not Found
Managers:
CocoaPods:
version: 1.16.2
path: /Users/sst/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.5
- iOS 18.5
- macOS 15.5
- tvOS 18.5
- visionOS 2.5
- watchOS 11.5
Android SDK: Not Found
IDEs:
Android Studio: 2025.1 AI-251.26094.121.2513.14007798
Xcode:
version: 16.4/16F6
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.16
path: /opt/homebrew/Cellar/openjdk@17/17.0.16/libexec/openjdk.jdk/Contents/Home/bin/javac
Ruby:
version: 3.3.0
path: /Users/sst/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli":
installed: 20.0.0
wanted: 20.0.0
react:
installed: 19.2.0
wanted: 19.2.0
react-native:
installed: 0.83.1
wanted: 0.83.1
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: true
newArchEnabled: true
Stacktrace or Logs
Fatal Exception: com.facebook.soloader.SoLoaderDSONotFoundError: couldn't find DSO to load: libreactnative.so
existing SO sources:
SoSource 0: ApplicationSoSource[DirectorySoSource[root = /data/app/~~XqhJ1EpBs99Ahf1FxVSQNw==/my.app-s-j3U1pjJ9NznSe6OnKJYQ==/lib/arm64 flags = 0]]
SoSource 1: DirectApkSoSource[root = [/data/app/~~XqhJ1EpBs99Ahf1FxVSQNw==/my.app-s-j3U1pjJ9NznSe6OnKJYQ==/base.apk!/lib/arm64-v8a]]
SoSource 2: DirectorySoSource[root = /system/lib64 flags = 2]
SoSource 3: DirectorySoSource[root = /vendor/lib64 flags = 2]
Native lib dir: /data/app/~~XqhJ1EpBs99Ahf1FxVSQNw==/my.app-s-j3U1pjJ9NznSe6OnKJYQ==/lib/arm64
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1216)
at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:1078)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:943)
at com.facebook.soloader.SoLoader.loadLibraryOnAndroid(SoLoader.java:859)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:842)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:812)
at com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsCxxInterop.<clinit>(ReactNativeFeatureFlagsCxxInterop.kt:28)
at com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsCxxInterop.override(ReactNativeFeatureFlagsCxxInterop.kt)
at com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsCxxAccessor.override(ReactNativeFeatureFlagsCxxAccessor.kt:615)
at com.facebook.react.internal.featureflags.ReactNativeFeatureFlags.override(ReactNativeFeatureFlags.kt:402)
at com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load(DefaultNewArchitectureEntryPoint.kt:97)
at com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load(DefaultNewArchitectureEntryPoint.kt:43)
at com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative(ReactNativeApplicationEntryPoint.java:31)
at my.app.MainApplication.onCreate(MainApplication.kt:36)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1211)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6728)
at android.app.ActivityThread.access$1500(ActivityThread.java:247)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2057)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7842)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
at de.robv.android.xp0sed.Xp0sedBridge.main(Xp0sedBridge.java:112)
MANDATORY Reproducer
run app
Screenshots and Videos
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Needs: Author FeedbackNeeds: ReproThis issue could be improved with a clear list of steps to reproduce the issue.This issue could be improved with a clear list of steps to reproduce the issue.
Activity
react-native-bot commentedon Feb 20, 2026
Warning
Missing reproducer: We could not detect a reproducible example in your issue report. Reproducers are mandatory and we can accept only one of those as a valid reproducer:
You can read more about about it on our website: How to report a bug.
tominou commentedon Feb 20, 2026
I think this is more of an Android issue.
Adding this in your app/build.gradle should fix it :
Nader-CS commentedon Feb 24, 2026
can anyone confirm this ?
MaxwellKJr commentedon Feb 24, 2026
tried this, seems the issue wasn't fixed. Got the same Crashlytics report after using this solution
rahulnainwalttn commentedon Feb 26, 2026
Facing same issue -
tominou commentedon Feb 26, 2026
It seems to be an issue only on ROOTED devices.
Check if you have
xp0sedin the logs, or if crashlytics flags the device as rooted.I dont think we can do much against heavily modified rooted devices.
Nader-CS commentedon Feb 27, 2026
No, all devices that encountered this error are not rooted.
dimlksiin-tech commentedon Mar 1, 2026
dimlksiin-tech commentedon Mar 2, 2026
android/app/build.gradle
починилось, крашей больше нет !!!
dimlksiin-tech commentedon Mar 2, 2026
I checked - it's true, there are no crashes
// checked and it works
packaging {
jniLibs {
useLegacyPackaging = true
}
}
packaging
packagingOptions - old
iAndrew25 commentedon Mar 11, 2026
any updates?
39 remaining items
christopherboisvert commentedon Jul 14, 2026
Is it maybe the automated testing that Google Play does ?
rishabhshuklayt commentedon Jul 17, 2026
I am Facing The Same Issue
The phone officially stopped receiving updates at Android 8.0 But Logs shows it was Android 13 may be custom ROM installations, And May be The Hardware and Software compatibility lead to this issue . It may be a Automated Google Play Crawler
jaredandrews commentedon Jul 27, 2026
Just to add a data point, I have an app that is only released via Google Play Internal Testing right now. I got 13 instances of this crash over the last week and started looking into it this morning.
The report shows a non-rooted LGE Nexus 5X running Android 13 as the culprit.
I only have 5 testers right now. None of them are using this device.
This leads me to believe it is some automated Google Play testing.
I always assumed that the automated Google Play testing happened prior to release, but some network logs I have from their bot thrashing around seem to indicate that automated testing is happening well after a new version of the app is released. Both instances of this occurred about 12 hours after new builds were released.
I am uploading aab releases generated with eas build --local FWIW.
yittoo commentedon Jul 30, 2026
Okay as people above me think I think it is correlated to google play. I cross checked our app's putting to prod dates (which is 1-2 day within review) with crashes here are my findings.
Comparing release dates with crashlytics
Release dates (usually 1 or 2 day before is added to review)
30 july 2026 11:10
20 Jul 2026 10:43
30 Jun 2026 09:53
19 Jun 2026 09:42
2 Jun 2026 10:04
1 Jun 2026 10:07
Crashlytics reports
29 july - 16 reports
18-22 july range - no reports
30 june - 3 reports
21 june - 5 reports
4 june - 3 reports
3 june - 3 reports
Another fact about these reports
All reports are usually within seconds of each other in single run, it rarely is 40minute between them, but often it can be in span of 30 seconds or same second different devices.
My own conclusion
I think these are google simulators, my gut feeling is 99% sure. I think each time they use different set of simulators, and if you are lucky all miss, thus no report, if you are unlucky 16 reports like today's for us. Our users are people who use app for their livelihood and if there are crashes, they are extremely verbal in feedback, and there's nothing related to this being reported.
Also
we in our acceptance environment had this occur too, we release aab to acceptance also, and none of our internal testers have said oneplus device in acceptance crashes
Edit:
Usually it's following devices for us
OnePlus 8 Pro
Huawei HRY-LX1T
Google Pixel 6 Pro
Nexus 5x
Qemu Standard PC (i440FX + PIIX, 1996)
jaredandrews commentedon Jul 30, 2026
@yittoo
All reports are usually within seconds of each other in single run, it rarely is 40minute between them, but often it can be in span of 30 seconds or same second different devices.I have also observed this.
Fix two crash-on-launch bugs found while verifying the FCM removal on…
baldev-foremost commentedon Aug 19, 2026
Is there any update?
Fatal Exception: com.facebook.soloader.SoLoaderDSONotFoundError: couldn't find DSO to load: libreactnative.so
existing SO sources:
SoSource 0: ApplicationSoSource[DirectorySoSource[root = /data/app/~~ALfTaAsZz5rLNQ5DQxOVig==/com.fairly-hYvGAqrNx-cuYD578ukioA==/lib/arm64 flags = 0]]
SoSource 1: DirectApkSoSource[root = [/data/app/~~ALfTaAsZz5rLNQ5DQxOVig==/com.fairly-hYvGAqrNx-cuYD578ukioA==/base.apk!/lib/arm64-v8a]]
SoSource 2: DirectorySoSource[root = /system/lib64 flags = 2]
SoSource 3: DirectorySoSource[root = /vendor/lib64 flags = 2]
Native lib dir: /data/app/~~ALfTaAsZz5rLNQ5DQxOVig==/com.fairly-hYvGAqrNx-cuYD578ukioA==/lib/arm64
arvindyadav2 commentedon Aug 30, 2026
same for me OnePlus Pro 8
arvindyadav2 commentedon Aug 30, 2026
did anyone find any solution for this error please help ?
haitienwork commentedon Aug 30, 2026
check the previous comment. still no solution bcs real device with same model still got no crash. its Google Bot and still dont know how they tested.
Just dont know is it affect Vital Points on Play Console will be less suggestion app or not
arvindyadav2 commentedon Aug 30, 2026
Do we have any confirmed solution for this crash yet? Since it’s affecting our crash-free users percentage, can we identify what Google’s test device/environment is doing and whether there’s a safe fix we can apply?
arvindyadav2 commentedon Aug 30, 2026
DavideMariuzzo118118money commentedon Sep 15, 2026
I had the same issue, might be because
SoLoader.init(this,false)was left on MainApplication.kt. I've removing it according to https://react-native-community.github.io/upgrade-helper/?from=0.75.1&to=0.78.0, I'll need to wait and see if the crash persist after the changeamrit-hash commentedon Sep 15, 2026
Adding production data that matches this issue closely, and also matches the pattern in the linked #49111.
Environment
React Native 0.81.5, Expo SDK 54
New Architecture enabled (newArchEnabled: true), Hermes enabled
targetSdk/compileSdk 36, AGP 8.13.2, NDK 27.1.12297006
Distribution: Google Play Store only, Production track (confirmed internally — no sideloading/alternate stores)
Crash
The DirectorySoSource root reports one ABI's native lib dir (lib/x86_64), while the fallback DirectApkSoSource search only enumerates a different ABI's split config APKs — the same architecture-directory mismatch signature described in #49111.
Scale
77 crash events / 7 unique users so far, recurring across two consecutive shipped versions (same crash before and after a version bump, no code changes to the crash path in between)
Confirmed affected devices: Huawei, OnePlus, and a Google Pixel 6 Pro — so this isn't limited to OEM/non-GMS devices
Added PackageManager.getInstallSourceInfo() as a Crashlytics custom key to rule out sideloading: 61% (41/50 events) confirm install_source = com.android.vending (genuine Play Store installs), remainder reported "unknown"
Happy to share more device/OS breakdowns or try a proposed repro/workaround if one comes up.
Nader-CS commentedon Oct 18, 2026
any update ?