SoLoader: SoLoader 0.8.0 couldn't find DSO to load - issue on .apk build

MyApp is crashing while performing tests on Firebase Test lab emulators (x86). Downgrading to 0.6.1 is fixing the problem.

java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libyoga.so caused by: APK was built for a different platform
	at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:789)
	at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:639)
	at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:577)
	at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:525)
	at com.facebook.yoga.YogaNative.<clinit>(YogaNative.java:15)
	at com.facebook.yoga.YogaConfig.<init>(YogaConfig.java:20)
	at com.facebook.yoga.YogaConfigFactory.create(YogaConfigFactory.java:5)
	at com.facebook.litho.yoga.LithoYogaFactory.createYogaConfig(LithoYogaFactory.java:26)
	at com.facebook.litho.NodeConfig.<clinit>(NodeConfig.java:45)

About this issue

  • Original URL
  • State: open
  • Created 4 years ago
  • Reactions: 27
  • Comments: 93 (12 by maintainers)

Commits related to this issue

Most upvoted comments

What fixed it for us what upgrading the SOLoader.

In android/app/build.gradle:

dependencies {
   implementation 'com.facebook.soloader:soloader:0.9.0+'

go to the android directory and run dis command “./gradle clean” its work for me

cd android && ./gradlew clean

This is worked for me

Version 0.8.1 has been released which includes this fix.

Still an issue for me with version 0.8.1, only error message a little bit changed in crashlitics couldn't find DSO to load: libhermes.so result: 0 instead of couldn't find DSO to load: libhermes.so

Have the same issue with React Native 0.61.5 and SoLoader 0.8.0 Device: Galaxy J2 Prime ,Redmi Note 4, HUAWEI Y3II

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
       at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:789)
       at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:639)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:577)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:525)
       at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20)
       at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:27)
       at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:952)
       at java.lang.Thread.run(Thread.java:818)

same here on upgrade react-native to 62.2

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
       at com.facebook.soloader.SoLoader.assertInitialized(SoLoader.java)
       at com.facebook.soloader.SoLoader.assertInitialized(SoLoader.java)
       at com.facebook.soloader.SoLoader.assertInitialized(SoLoader.java)
       at com.facebook.soloader.SoLoader.assertInitialized(SoLoader.java)
       at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java)
       at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java)
       at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java)
       at java.lang.Thread.run(Thread.java:818)

i am still facing the same problem, issue is not resolved. i am using soloader:0.10.3

Another one from me, but this time I have updated SoLoader to the latest version (0.10.1).

Version:

  • react-native 0.62.2
  • implementation ‘com.facebook.soloader:soloader:0.10.1+’
  • Distribution: Android App Bundle (AAB)

Device: Pixel 3 XL (Android 9)

Log:

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
	SoSource 0: e.f.y0.a[root = /data/data/com.?/lib-main flags = 1]
	SoSource 1: e.f.y0.c[root = /data/app/com.?-QVmp1vNO5-Hi12o_PNJV0w==/lib/arm64 flags = 0]
	SoSource 2: e.f.y0.c[root = /vendor/lib64 flags = 2]
	SoSource 3: e.f.y0.c[root = /system/lib64 flags = 2]
	Native lib dir: /data/app/com.?-QVmp1vNO5-Hi12o_PNJV0w==/lib/arm64
 result: 0
       at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:918)
       at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:740)
       at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:654)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:634)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:582)
       at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20)
       at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:29)
       at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:997)
       at java.lang.Thread.run(Thread.java:764)

go to the android directory and run dis command “./gradle clean” its work for me

@soroushm Thanks. Is it ./gradlew clean ? —> This command fixed the issue on my side…

Hi @BurntBrunch, this is another one to help you with the debugging.

Version:

  • react-native 0.62.2
  • implementation 'com.facebook.soloader:soloader:0.9.0+'

Distribution: Android App Bundle (AAB)

Device: Galaxy S5 (Android 5.1.1)

Log:

Fatal Exception: java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libhermes.so
SoSource 0: e.f.z0.a[root = /data/data/com.?/lib-main flags = 1]
SoSource 1: e.f.z0.c[root = /data/app/com.?-1/lib/x86 flags = 0]
SoSource 2: e.f.z0.c[root = /system/vendor/lib flags = 2]
SoSource 3: e.f.z0.c[root = /system/lib flags = 2]
Native lib dir: /data/app/com.?-1/lib/x86 result: 0
com.facebook.soloader.SoLoader.doLoadLibraryBySoName (SoLoader.java:896)
com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl (SoLoader.java:725)
com.facebook.soloader.SoLoader.loadLibraryBySoName (SoLoader.java:649)
com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:629)
com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:577)
com.facebook.hermes.reactexecutor.HermesExecutor.<clinit> (HermesExecutor.java:20)
com.facebook.hermes.reactexecutor.HermesExecutorFactory.create (HermesExecutorFactory.java:29)
com.facebook.react.ReactInstanceManager$5.run (ReactInstanceManager.java:997)

Still seeing similar issue with SoLoader 0.8.2 with the following (not very helpful) error message. @BurntBrunch any update?

Fatal Exception: java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libv8executor.so result: 0
com.facebook.soloader.SoLoader.doLoadLibraryBySoName

@BurntBrunch thanks for looking into this. Actually it seems that the “brokenness” affects real devices as well. Seeing similar crashes in production on these devices running Android 6-9

Nexus 6 Xiaomi Mi 9X, Redmi Pro, Mi 5 Trend TaintArt for x86 X9 (Maybe Vivo X9?) Vivo s1 Huawei Enjoy 9s Others (Samsung, Asus, LGE, Google, Lenovo)

Unfortunately the stack trace from Firebase is limited

Fatal Exception: java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libv8executor.so

com.facebook.soloader.SoLoader.doLoadLibraryBySoName (SoLoader.java:789)
com.facebook.soloader.SoLoader.loadLibraryBySoName (SoLoader.java:639)
com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:577)
com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:525)
com.facebook.v8.reactexecutor.V8Executor.<clinit> (V8Executor.java:16)
com.facebook.v8.reactexecutor.V8ExecutorFactory.create (V8ExecutorFactory.java:17)
com.facebook.react.ReactInstanceManager$5.run (ReactInstanceManager.java:952)
java.lang.Thread.run (Thread.java:761)

Definitely seeing fewer crashes with 0.9.0 but still not zero. Good news is that it’s giving more logs now. Below is an example for Nexus 6. Looks like it’s still trying to load from an incorrect location.

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libv8executor.so
	SoSource 0: com.facebook.soloader.ApkSoSource[root = /data/data/com.invisatime/lib-main flags = 1]
	SoSource 1: com.facebook.soloader.DirectorySoSource[root = /data/app/com.invisatime-1/lib/arm flags = 0]
	SoSource 2: com.facebook.soloader.DirectorySoSource[root = /system/vendor/lib flags = 2]
	SoSource 3: com.facebook.soloader.DirectorySoSource[root = /system/lib flags = 2]
	Native lib dir: /data/app/com.invisatime-1/lib/arm
 result: 0
       at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:896)
       at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:725)
       at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:649)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:629)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:577)
       at com.facebook.v8.reactexecutor.V8Executor.<clinit>(V8Executor.java:16)
       at com.facebook.v8.reactexecutor.V8ExecutorFactory.create(V8ExecutorFactory.java:20)
       at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:997)
       at java.lang.Thread.run(Thread.java:761)

Hi, sorry about the delay! I’ve investigated this a bit and I am reasonably convinced that particular emulator image (Pie SDK 28 Google APIs x86) is just broken.

The Google APIs version is reporting both x86 and armv7 compatibility when the non-Google version correctly only reports x86. As a workaround, can you try using an SDK 29 (Q) Google APIs image? In my testing, that image should behave better.

I’ve also posted this on the Android bug tracker here.

@saczuac does this fix it for you? It did for me:

configurations.all {
  resolutionStrategy {
    force "com.facebook.soloader:soloader:0.8.2"
  }
}

Changed the version to 0.10.1 solve the issue at my end. implementation ‘com.facebook.soloader:soloader:0.10.1+’

@simpleton as @thanakij I am having this issue only on android 11 I was facing the issue yesterday and Crashlytics was reporting this crash with the following logs:

 Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
	SoSource 0: com.facebook.soloader.a[root = /data/data/com.xxx/lib-main flags = 1]
	SoSource 1: com.facebook.soloader.c[root = /data/app/~~4hdNB904_wPx4ByZ7-TUcQ==/com.xxx-yEWAHbjKZX3Pd5CctUWLDg==/lib/arm64 flags = 0]
	SoSource 2: com.facebook.soloader.c[root = /vendor/lib64 flags = 2]
	SoSource 3: com.facebook.soloader.c[root = /system/lib64 flags = 2]
	Native lib dir: /data/app/~~4hdNB904_wPx4ByZ7-TUcQ==/com.xxx-yEWAHbjKZX3Pd5CctUWLDg==/lib/arm64
 result: 0
       at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:262)
       at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:99)
       at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:2)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:100)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:1)
       at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:2)
       at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java)
       at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:58)
       at java.lang.Thread.run(Thread.java:923)

I am using implementation "com.facebook.soloader:soloader:0.10.3+"

However when i opened the run logs in android studio i saw the following error after the app crashes

Caused by java.lang.RuntimeException: Requested enabled DevSupportManager, but DevSupportManagerImpl class was not found or could not be created
       at com.facebook.react.devsupport.DevSupportManagerFactory.create(DevSupportManagerFactory.java:90)
       at com.facebook.react.ReactInstanceManager.<init>(ReactInstanceManager.java:237)
       at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:280)
       at com.facebook.react.ReactNativeHost.createReactInstanceManager(ReactNativeHost.java:87)
       at com.facebook.react.ReactNativeHost.getReactInstanceManager(ReactNativeHost.java:39)
       at com.xxx.MainApplication.onCreate(MainApplication.java:51)
       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7573)
       at android.app.ActivityThread.access$1500(ActivityThread.java:301)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2169)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:246)
       at android.app.ActivityThread.main(ActivityThread.java:8633)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

this error is actually caused by implementation 'com.squareup.okhttp3:okhttp:4.9.2' so what i added i have added

 implementation 'com.squareup.okhttp3:okhttp:4.9.2'
 implementation 'com.squareup.okhttp3:logging-interceptor:4.4.1'
implementation 'com.squareup.okhttp3:okhttp-urlconnection:4.4.1'

in android/app/build.gradle

then i cleaned the build folder and reinstall the app again and it is working without any crash even no more reported crashes in firebase Crashlytics

Honestly I have no idea how the Crashlytics is reporting fatal error related to soloader while the issue was caused by okhttp

@saczuac does this fix it for you? It did for me:

configurations.all {
  resolutionStrategy {
    force "com.facebook.soloader:soloader:0.8.2"
  }
}

Did not help for me.

Me too.

Fatal Exception: java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libhermes.so SoSource 0: com.facebook.soloader.ApkSoSource

I’m using soloader 0.9.0+ and it happened since the update to 0.63.2.

It happened on devices with Android 10 and 11. Don’t know why tho.

Any luck for the issue? Have tried multiple solutions but still facing it. The same issue is causing number of crashes in production app. “react-native”: “0.63.0” implementation ‘com.facebook.soloader:soloader:0.9.0+’

Some more data from me

Setup:

“react-native”: “0.63.0” implementation ‘com.facebook.soloader:soloader:0.9.0+’ enableHermes: false Distribution: Android App Bundle (AAB)

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
	SoSource 0: com.facebook.soloader.ApkSoSource[root = /data/data/se.myApp.myApp/lib-main flags = 1]
	SoSource 1: com.facebook.soloader.DirectorySoSource[root = /data/app/se.myApp.myApp-1/lib/arm flags = 0]
	SoSource 2: com.facebook.soloader.DirectorySoSource[root = /system/vendor/lib flags = 2]
	SoSource 3: com.facebook.soloader.DirectorySoSource[root = /system/lib flags = 2]
	Native lib dir: /data/app/se.myApp.myApp-1/lib/arm
 result: 0
       at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:896)
       at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:725)
       at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:649)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:629)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:577)
       at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20)
       at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:29)
       at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1017)
       at java.lang.Thread.run(Thread.java:818)

Happening to me as well on production on version 0.8.1 of SoLoader. Xperia X Performance - Android 8.0.0

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libyoga.so caused by: couldn't find DSO to load: libfb.so caused by: Error: Cannot load /data/user/0/com.mypackage/lib-main/libfb.so result: 0 result: 0
       at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:825)
       at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:673)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:611)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:559)
       at com.facebook.yoga.YogaNative.<clinit>(YogaNative.java:15)
       at com.facebook.yoga.YogaNative.jni_YGConfigNew(YogaNative.java)
       at com.facebook.yoga.YogaConfig.<init>(YogaConfig.java:20)
       at com.facebook.yoga.YogaConfigFactory.create(YogaConfigFactory.java:5)
       at com.facebook.litho.yoga.LithoYogaFactory.createYogaConfig(LithoYogaFactory.java:26)
       at com.facebook.litho.NodeConfig.<clinit>(NodeConfig.java:45)
       at com.facebook.litho.NodeConfig.getYogaConfig(NodeConfig.java:66)

@tusharsarkar @nagasai65 what RN version are you guys on? facing same issue, soloader is 0.10.3+, and RN is 0.66.0

Same 0.66, make sure remove the plus on suffix implementation ‘com.facebook.soloader:soloader:0.10.1+’ -> implementation ‘com.facebook.soloader:soloader:0.10.1’

This works for me

We are also seeing similar crashes in Android 10 and 11 devices with RN version = 0.64 and Soloader = 0.8.2.

Is there any update on this bug? or anyone knows of a workaround?

We have upgraded soloader to 0.10.3 but somehow Crashlytics is still reporting this issue…

Fatal Exception: java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libhermes.so SoSource 0: c.g.b1.d[root = /data/app/com.xxx-vcqrW3oazAf0i2rlQsiIbA==/lib/x86 flags = 0] SoSource 1: c.g.b1.c[root = null] SoSource 2: c.g.b1.d[root = /vendor/lib flags = 2] SoSource 3: c.g.b1.d[root = /system/lib flags = 2] Native lib dir: /data/app/com.xxx-vcqrW3oazAf0i2rlQsiIbA==/lib/x86 result: 0

This time the report says the device is running Android 8.1.0 (Nexus 5X) at SoLoader.java line 1098.

@charleston10 Interesting, Thank you so much for your tips! And Do you know what could we do to fix this issue?

I believe it is not a problem in the RN, but in how the android studio behaves in generating an apk

you can fix it, but I wouldn’t put much effort into it, since it’s a way the tool works

one of the alternatives and force the type of the build setting to ABI for the same architecture as RN

ABI - Application Binary Interface See https://developer.android.com/studio/build/configure-apk-splits

I’m a native android programmer, and this problem happens when compiling the app through Play from the android studio itself

Behind it, it generates an apk with ABI with simpler architecture for the OS

If you generate the APK via Build or via ADB, the APK architecture will be generated using the architecture defined by build.gradle or the standard architecture

In this case I want to make it clear, that there is a difference between creating apk via Play and via Build / ADB

if you using proguard try this rule’s worked for me -keep class com.facebook.soloader.{*;} -keep class com.facebook.yoga.{;} -keep class com.facebook.jni.**{;} -keep class com.facebook.fbjni.**{*;}

This is giving me sleepless nights now - I have an app which keeps getting rejected in review since it crashes on reviewers phone. The phones in question are:

  1. Samsung Galaxy A52, Pixel 4xl - unfortunately, I don’t have access to any of these phones and it works on the phones that we do have.

Have pinned soloader to .10.3 implementation 'com.facebook.soloader:soloader:0.10.3+' and also added this in ndk filter as per another bug workaround: ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' Still no dice. Using RN "react-native": "^0.63.4"

Below is the error log in crashlytics:

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so
	SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/~~1r_ebB2J2znWSeO1aO24nw==/com.omozing_developers.omozing_updated-858k-71AkAC-TA0IVHCXyA==/lib/arm64 flags = 0]
	SoSource 1: com.facebook.soloader.DirectApkSoSource[root = null]
	SoSource 2: com.facebook.soloader.DirectorySoSource[root = /system/lib64 flags = 2]
	SoSource 3: com.facebook.soloader.DirectorySoSource[root = /vendor/lib64 flags = 2]
	Native lib dir: /data/app/~~1r_ebB2J2znWSeO1aO24nw==/com.omozing_developers.omozing_updated-858k-71AkAC-TA0IVHCXyA==/lib/arm64
 result: 0
       at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1098)
       at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:914)
       at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:826)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:773)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:743)
       at com.facebook.react.bridge.ReactBridge.staticInit(ReactBridge.java:34)
       at com.facebook.react.bridge.NativeMap.<clinit>(NativeMap.java:17)
       at com.facebook.react.bridge.Arguments.createMap(Arguments.java:155)
       at expo.modules.updates.UpdatesController$1.onBackgroundUpdateFinished(UpdatesController.java:266)
       at expo.modules.updates.loader.LoaderTask$3.onFailure(LoaderTask.java:263)
       at expo.modules.updates.loader.RemoteLoader.finishWithError(RemoteLoader.java:123)
       at expo.modules.updates.loader.RemoteLoader.access$000(RemoteLoader.java:22)
       at expo.modules.updates.loader.RemoteLoader$1.onFailure(RemoteLoader.java:78)
       at expo.modules.updates.loader.FileDownloader$2.onResponse(FileDownloader.java:109)
       at expo.modules.updates.loader.FileDownloader$4.onResponse(FileDownloader.java:243)
       at okhttp3.RealCall$AsyncCall.execute(RealCall.java:203)
       at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:923)

aabs are being generated using appcenter to clearing gradle build cache isn’t required. Any pointers on what could be done?

This is giving me sleepless nights now - I have an app which keeps getting rejected in review since it crashes on reviewers phone. The phones in question are:

  1. Samsung Galaxy A52, Pixel 4xl - unfortunately, I don’t have access to any of these phones and it works on the phones that we do have.

Have pinned soloader to .10.3 implementation 'com.facebook.soloader:soloader:0.10.3+' and also added this in ndk filter as per another bug workaround: ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' Still no dice. Using RN "react-native": "^0.63.4"

Below is the error log in crashlytics:

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so
	SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/~~1r_ebB2J2znWSeO1aO24nw==/com.omozing_developers.omozing_updated-858k-71AkAC-TA0IVHCXyA==/lib/arm64 flags = 0]
	SoSource 1: com.facebook.soloader.DirectApkSoSource[root = null]
	SoSource 2: com.facebook.soloader.DirectorySoSource[root = /system/lib64 flags = 2]
	SoSource 3: com.facebook.soloader.DirectorySoSource[root = /vendor/lib64 flags = 2]
	Native lib dir: /data/app/~~1r_ebB2J2znWSeO1aO24nw==/com.omozing_developers.omozing_updated-858k-71AkAC-TA0IVHCXyA==/lib/arm64
 result: 0
       at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1098)
       at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:914)
       at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:826)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:773)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:743)
       at com.facebook.react.bridge.ReactBridge.staticInit(ReactBridge.java:34)
       at com.facebook.react.bridge.NativeMap.<clinit>(NativeMap.java:17)
       at com.facebook.react.bridge.Arguments.createMap(Arguments.java:155)
       at expo.modules.updates.UpdatesController$1.onBackgroundUpdateFinished(UpdatesController.java:266)
       at expo.modules.updates.loader.LoaderTask$3.onFailure(LoaderTask.java:263)
       at expo.modules.updates.loader.RemoteLoader.finishWithError(RemoteLoader.java:123)
       at expo.modules.updates.loader.RemoteLoader.access$000(RemoteLoader.java:22)
       at expo.modules.updates.loader.RemoteLoader$1.onFailure(RemoteLoader.java:78)
       at expo.modules.updates.loader.FileDownloader$2.onResponse(FileDownloader.java:109)
       at expo.modules.updates.loader.FileDownloader$4.onResponse(FileDownloader.java:243)
       at okhttp3.RealCall$AsyncCall.execute(RealCall.java:203)
       at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:923)

aabs are being generated using appcenter to clearing gradle build cache isn’t required. Any pointers on what could be done?

Hi @sn123, Please let me know if you found any solution to fix this app crash issue.

@tusharsarkar @nagasai65 what RN version are you guys on? facing same issue, soloader is 0.10.3+, and RN is 0.66.0

0.10.3 should fix this issue

On Tue, Jan 11, 2022 at 9:34 PM Mayuresh Gharpure @.***> wrote:

We are also seeing similar crashes in Android 10 and 11 devices with RN version = 0.64 and Soloader = 0.8.2.

Is there any update on this bug? or anyone knows of a workaround?

— Reply to this email directly, view it on GitHub https://github.com/facebook/SoLoader/issues/55#issuecomment-1010653718, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADO6YQQENUZAPEEYVS3IITUVUHFFANCNFSM4J2NKS4A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

(1) I cannot reproduce this myself.

(2) Because Crashlytics is saying the crash is for line 1098, this should just help confirm that I am using the latest v0.10.3.

I have pinned the version of SoLoader to be 0.10.3 in my android/app/build.xml:

implementation "com.facebook.soloader:soloader:0.10.3+"

(3) Anyway, my estimate is that around 0.08% of my Android users have experienced this crash.

From the pattern in my Crashlytics, trying to make sense out of it, it is likely that only some certain devices are affected.

It means that if this issue affects a user, she will just have a consistent early crash every time when she tries to open the app. But for most users, they wouldn’t run into this same issue.

Hi @simpleton, please see the log below:

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
	SoSource 0: c.g.b1.d[root = /data/app/com.xxx-QOZMQQzcNNsbGdCAr64Kcw==/lib/arm64 flags = 0]
	SoSource 1: c.g.b1.c[root = null]
	SoSource 2: c.g.b1.d[root = /system/lib64 flags = 2]
	SoSource 3: c.g.b1.d[root = /vendor/lib64 flags = 2]
	Native lib dir: /data/app/com.xxx-QOZMQQzcNNsbGdCAr64Kcw==/lib/arm64
 result: 0
       at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1098)
       at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:914)
       at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:826)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:773)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:743)
       at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20)
       at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:29)
       at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:997)
       at java.lang.Thread.run(Thread.java:764)

We have upgraded soloader to 0.10.3 but somehow Crashlytics is still reporting this issue…

Fatal Exception: java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libhermes.so SoSource 0: c.g.b1.d[root = /data/app/com.xxx-vcqrW3oazAf0i2rlQsiIbA==/lib/x86 flags = 0] SoSource 1: c.g.b1.c[root = null] SoSource 2: c.g.b1.d[root = /vendor/lib flags = 2] SoSource 3: c.g.b1.d[root = /system/lib flags = 2] Native lib dir: /data/app/com.xxx-vcqrW3oazAf0i2rlQsiIbA==/lib/x86 result: 0

This time the report says the device is running Android 8.1.0 (Nexus 5X) at SoLoader.java line 1098.

me too having same issue with version 0.10.3 and Android 11

I had the issue on RN version 64.2 and what solved it for me was upgrading my hermes-engine version to 0.7.0. Apparently there is strict version compatibility. Hope this saves someone the 4 hours I just wasted.

@agrass I’m not sure if fix libv8executor.so too ¯\_(ツ)_/¯

Hello! this error still with the configuration SoLoader 0.9+ when using RN 59. Anyone already managed to fix this issue? Thanks

java.lang.UnsatisfiedLinkErrorSoLoader.java:896
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libv8executor.so
	SoSource 0: com.facebook.soloader.ApkSoSource[root = /data/data/com.app/lib-main flags = 1]
	SoSource 1: com.facebook.soloader.DirectorySoSource[root = /data/app/com.app-1/lib/arm flags = 0]
	SoSource 2: com.facebook.soloader.DirectorySoSource[root = /system/vendor/lib flags = 2]
	SoSource 3: com.facebook.soloader.DirectorySoSource[root = /system/lib flags = 2]
	Native lib dir: /data/app/com.app-1/lib/arm

Same here:

Version:

"react-native": "0.64.1"
implementation 'com.facebook.soloader:soloader:0.10.1'
enableHermes: true
E/AndroidRuntime: FATAL EXCEPTION: create_react_context
    Process: one.realnote.app, PID: 15083
    java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so caused by: couldn't find DSO to load: libjsi.so
    	SoSource 0: com.facebook.soloader.ApkSoSource[root = /data/data/one.realnote.app/lib-main flags = 1]
    	SoSource 1: com.facebook.soloader.DirectorySoSource[root = /data/app/one.realnote.app-DyBwcPq-Y_Q92-gHnKVpLA==/lib/arm64 flags = 0]
    	SoSource 2: com.facebook.soloader.DirectorySoSource[root = /vendor/lib64 flags = 2]
    	SoSource 3: com.facebook.soloader.DirectorySoSource[root = /system/lib64 flags = 2]
    	Native lib dir: /data/app/one.realnote.app-DyBwcPq-Y_Q92-gHnKVpLA==/lib/arm64
     result: 0 result: 0
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:918)
        at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:740)
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:654)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:634)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:582)
        at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20)
        at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:29)
        at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1024)
        at java.lang.Thread.run(Thread.java:929)
     Caused by: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libjsi.so
    	SoSource 0: com.facebook.soloader.ApkSoSource[root = /data/data/one.realnote.app/lib-main flags = 1]
    	SoSource 1: com.facebook.soloader.DirectorySoSource[root = /data/app/one.realnote.app-DyBwcPq-Y_Q92-gHnKVpLA==/lib/arm64 flags = 0]
    	SoSource 2: com.facebook.soloader.DirectorySoSource[root = /vendor/lib64 flags = 2]
    	SoSource 3: com.facebook.soloader.DirectorySoSource[root = /system/lib64 flags = 2]
    	Native lib dir: /data/app/one.realnote.app-DyBwcPq-Y_Q92-gHnKVpLA==/lib/arm64
     result: 0
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:918)
        at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:740)
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:640)
        at com.facebook.soloader.DirectorySoSource.loadDependencies(DirectorySoSource.java:121)
        at com.facebook.soloader.DirectorySoSource.loadLibraryFrom(DirectorySoSource.java:71)
        at com.facebook.soloader.UnpackingSoSource.loadLibrary(UnpackingSoSource.java:477)
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:860)
        	... 8 more

Same issue here, with:

Setup:

“react-native”: “0.63.2” implementation ‘com.facebook.soloader:soloader:0.9.0+’ enableHermes: false Distribution: Android App Bundle (AAB)

Device: Nexus 5X (Android 6.0.1)

Log:

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn’t find DSO to load: libhermes.so SoSource 0: com.facebook.soloader.ApkSoSource[root = /data/data/com.metropolis/lib-main flags = 1] SoSource 1: com.facebook.soloader.DirectorySoSource[root = /data/app/com.metropolis-1/lib/arm flags = 0] SoSource 2: com.facebook.soloader.DirectorySoSource[root = /system/vendor/lib flags = 2] SoSource 3: com.facebook.soloader.DirectorySoSource[root = /system/lib flags = 2] Native lib dir: /data/app/com.metropolis-1/lib/arm result: 0 at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:896) at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:725) at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:649) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:629) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:577) at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20) at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:29) at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1017) at java.lang.Thread.run(Thread.java:818)

i managed to resolve this crash by releasing apk instead of aab for playstore.

version for the production app “react-native”: “0.61.5” force ‘com.facebook.soloader:soloader:0.9.0’

it should be an issue on how bundletool manage the native library with the aab package while install into devices through playstore.

去掉defaultConfig里面的 ndk 在外面加上以下代码: splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK include “armeabi-v7a”, “x86”, “arm64-v8a”, “x86_64” } }

亲测有效, 不知道为啥