react-native: couldn't find DSO to load: libhermes.so caused by

Description

E/SoLoader: couldn't find DSO to load: libhermes.so caused by: dlopen failed: cannot locate symbol "__emutls_get_address" referenced by "/data/app/~~fi0LO6D2MoTiy52TfVSjbA==/dk.ao.AO-KNgz-FvvkLLLxHpm6hQn1A==/lib/arm64/libfolly_runtime.so"... result: 0
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: dk.ao.AO, PID: 13836
    java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so caused by: dlopen failed: cannot locate symbol "__emutls_get_address" referenced by "/data/app/~~fi0LO6D2MoTiy52TfVSjbA==/dk.ao.AO-KNgz-FvvkLLLxHpm6hQn1A==/lib/arm64/libfolly_runtime.so"... result: 0
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1127)
        at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:943)
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:855)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:802)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:772)
        at com.facebook.hermes.reactexecutor.HermesExecutor.loadLibrary(HermesExecutor.java:26)
        at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20)
        at com.facebook.hermes.reactexecutor.HermesExecutor.loadLibrary(HermesExecutor.java:24)
        at com.facebook.react.ReactInstanceManagerBuilder.getDefaultJSExecutorFactory(ReactInstanceManagerBuilder.java:369)
        at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:316)
        at com.facebook.react.ReactNativeHost.createReactInstanceManager(ReactNativeHost.java:94)
        at com.facebook.react.ReactNativeHost.getReactInstanceManager(ReactNativeHost.java:41)
        at dk.ao.AO.MainApplication.onCreate(MainApplication.java:60)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1277)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6759)
        at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2133)
        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:7872)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
     Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__emutls_get_address" referenced by "/data/app/~~fi0LO6D2MoTiy52TfVSjbA==/dk.ao.AO-KNgz-FvvkLLLxHpm6hQn1A==/lib/arm64/libfolly_runtime.so"...
        at java.lang.Runtime.load0(Runtime.java:929)
        at java.lang.System.load(System.java:1625)
        at com.facebook.soloader.SoLoader$1.load(SoLoader.java:558)
        at com.facebook.soloader.DirectorySoSource.loadLibraryFrom(DirectorySoSource.java:110)
        at com.facebook.soloader.DirectorySoSource.loadLibrary(DirectorySoSource.java:63)
        at com.facebook.soloader.ApplicationSoSource.loadLibrary(ApplicationSoSource.java:91)
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1067)
        at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:943) 
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:855) 
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:802) 
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:772) 
        at com.facebook.hermes.reactexecutor.HermesExecutor.loadLibrary(HermesExecutor.java:26) 
        at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20) 
        at com.facebook.hermes.reactexecutor.HermesExecutor.loadLibrary(HermesExecutor.java:24) 
        at com.facebook.react.ReactInstanceManagerBuilder.getDefaultJSExecutorFactory(ReactInstanceManagerBuilder.java:369) 
        at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:316) 
        at com.facebook.react.ReactNativeHost.createReactInstanceManager(ReactNativeHost.java:94) 
        at com.facebook.react.ReactNativeHost.getReactInstanceManager(ReactNativeHost.java:41) 
        at dk.ao.AO.MainApplication.onCreate(MainApplication.java:60) 
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1277) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6759) 
        at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2133) 
        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:7872) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

Version

0.71.0

Output of npx react-native info

System: OS: macOS 13.1 CPU: (10) arm64 Apple M1 Pro Memory: 70.36 MB / 16.00 GB Shell: 5.8.1 - /bin/zsh Binaries: Node: 16.16.0 - ~/.nvm/versions/node/v16.16.0/bin/node Yarn: 1.22.19 - /opt/homebrew/bin/yarn npm: 8.11.0 - ~/.nvm/versions/node/v16.16.0/bin/npm Watchman: Not Found Managers: CocoaPods: 1.11.3 - /opt/homebrew/lib/ruby/gems/2.7.0/bin/pod SDKs: iOS SDK: Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1 Android SDK: Not Found IDEs: Android Studio: 2021.3 AI-213.7172.25.2113.9123335 Xcode: 14.2/14C18 - /usr/bin/xcodebuild Languages: Java: 17.0.4 - /usr/bin/javac npmPackages: @react-native-community/cli: Not Found react: 18.2.0 => 18.2.0 react-native: 0.71.0 => 0.71.0 react-native-macos: Not Found npmGlobalPackages: react-native: Not Found

Steps to reproduce

When building towards Android no issues on IOS.

Snack, code example, screenshot, or link to a repository

When building towards Android no issues on IOS.

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 5
  • Comments: 74 (11 by maintainers)

Most upvoted comments

Please, I would be happy if this issue could be looked into. It does not occur in development. It only occurs in production mode. Most of us are able to see the errors in Crashlytic logs on our Firebase dashboard. This error has bugged me since the day I deployed my app to the Play Store. I keep hoping that someday it will be fixed. But this is 2024, and there is still no fix for this.

I am guessing the reason might be because it is impossible to reproduce in development. But still, this issue is real and exists. It has bugged me for over 3 years now

OK - I’m up and running for real. Here’s what happened:

  • I removed enableHermesOnlyInVariants to fully match what @cortinico says correctly is the correct setup
  • App still crashed in the same way
  • Found that the line at the bottom of this comment still existed in android/app/build.gradle
  • Removed said line
  • App works again 🎉

I’m not sure how I missed to remove this, I’ll check the upgrade helper again to see how that could have happened, no doubt lack of coffee.

I hope this helps others in this thread.

apply from: "../../node_modules/react-native/react.gradle"

Hello @cortinico

We have a fix and the findings are as below:

  • With ReactNative version 0.70.6​ and 0.70.7​ our application works fine.
  • We found that we had a local binary libc++_shared.so ​kept in the app under app/src/main/jniLibs/arm64-v8a​ – which was the leading cause of the issue, since this binary is quite old it does not find methods needed by other compiled binaries or libraries, for example __emutls_get_address​ which leads to Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__emutls_get_address​" error and then to couldn't find DSO to load: libjscexecutor.so
  • We fixed it by removing the local libc++_shared.so​ and with an updated ReactNative configuration for 0.71.x and removal of pickFirst​ code block for the libs.
  • Usually, the compiler gives priority to the libraries which are available in the app module.
  • The release version also strips away some of the libraries and code usually available in the debug version.

I hope this might help someone that might have similar setup.

@cortinico, thanks for taking the time to respond 😃 @Hmoulvad we can close this issue if we are ok with the release version of app.

Others can still reopen if they want.

I’m having the same issue on RN 0.72.4 and 0.72.5. I can’t reproduce in debug mode, it occurs randomly only in production mode for some users. Here’s the logs from Crashlytics from a device.

`

Crashlytics - Stack trace

Application: com.controledevalidade

Platform: android

Version: 1.15.0 (247)

Issue: f9b57ca503f72e6fce0c46953c7dcc4a

Session: 65150E1B034A0001181CCB498C7B1C71_DNE_0_v2

Date: Thu Sep 28 2023 02:24:43 GMT-0300 (Brasilia Standard Time)

Fatal Exception: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/com.controledevalidade-MfwQ7UG2Aa1UZPod7aYaqg==/base.apk”],nativeLibraryDirectories=[/data/app/com.controledevalidade-MfwQ7UG2Aa1UZPod7aYaqg==/lib/x86, /system/lib, /vendor/lib]]] couldn’t find “libhermes.so” at java.lang.Runtime.loadLibrary0(Runtime.java:1011) at java.lang.System.loadLibrary(System.java:1657) at com.facebook.soloader.nativeloader.SystemDelegate.loadLibrary(SystemDelegate.java:24) at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:52) at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:30) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:869) at com.facebook.hermes.reactexecutor.HermesExecutor.loadLibrary(HermesExecutor.java:26) at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20) at com.facebook.hermes.reactexecutor.HermesExecutor.loadLibrary(HermesExecutor.java:24) at com.facebook.react.ReactInstanceManagerBuilder.getDefaultJSExecutorFactory(ReactInstanceManagerBuilder.java:379) at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:325) at com.facebook.react.ReactNativeHost.createReactInstanceManager(ReactNativeHost.java:96) at com.facebook.react.ReactNativeHost.getReactInstanceManager(ReactNativeHost.java:42) at com.controledevalidade.MainApplication.onCreate(MainApplication.java:61) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1119) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5740) at android.app.ActivityThread.-wrap1() at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Firebase Background Thread #3: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0$com-google-firebase-concurrent-CustomThreadFactory(CustomThreadFactory.java:47) at com.google.firebase.concurrent.CustomThreadFactory$$ExternalSyntheticLambda0.run(:4) at java.lang.Thread.run(Thread.java:764)

Firebase-Messaging-Init: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@18.2.0:2) at java.lang.Thread.run(Thread.java:764)

awaitEvenIfOnMainThread task continuation executor1: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:67) at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27) at java.lang.Thread.run(Thread.java:764)

Firebase Blocking Thread #3: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1086) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0$com-google-firebase-concurrent-CustomThreadFactory(CustomThreadFactory.java:47) at com.google.firebase.concurrent.CustomThreadFactory$$ExternalSyntheticLambda0.run(:4) at java.lang.Thread.run(Thread.java:764)

FinalizerWatchdogDaemon: at java.lang.Thread.sleep(Thread.java) at java.lang.Thread.sleep(Thread.java:373) at java.lang.Thread.sleep(Thread.java:314) at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:342) at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:364) at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:281) at java.lang.Daemons$Daemon.run(Daemons.java:103) at java.lang.Thread.run(Thread.java:764)

GmsDynamite: at java.lang.Object.wait(Object.java) at com.google.android.gms.dynamite.zza.run(com.google.android.gms:play-services-basement@@18.2.0:2)

Firebase Lite Thread #0: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0$com-google-firebase-concurrent-CustomThreadFactory(CustomThreadFactory.java:47) at com.google.firebase.concurrent.CustomThreadFactory$$ExternalSyntheticLambda0.run(:4) at java.lang.Thread.run(Thread.java:764)

ScionFrontendApi: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101) at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1086) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764)

Firebase Blocking Thread #1: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1086) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0$com-google-firebase-concurrent-CustomThreadFactory(CustomThreadFactory.java:47) at com.google.firebase.concurrent.CustomThreadFactory$$ExternalSyntheticLambda0.run(:4) at java.lang.Thread.run(Thread.java:764)

glide-active-resources: at java.lang.Object.wait(Object.java) at java.lang.Object.wait(Object.java:422) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209) at com.bumptech.glide.load.engine.ActiveResources.cleanReferenceQueue(ActiveResources.java:128) at com.bumptech.glide.load.engine.ActiveResources$2.run(ActiveResources.java:61) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.bumptech.glide.load.engine.ActiveResources$1$1.run(ActiveResources.java:43) at java.lang.Thread.run(Thread.java:764)

com.google.firebase.crashlytics.startup1: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:67) at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27) at java.lang.Thread.run(Thread.java:764)

WM.task-1: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764)

ReferenceQueueDaemon: at java.lang.Object.wait(Object.java) at java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:178) at java.lang.Daemons$Daemon.run(Daemons.java:103) at java.lang.Thread.run(Thread.java:764)

Firebase Background Thread #1: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0$com-google-firebase-concurrent-CustomThreadFactory(CustomThreadFactory.java:47) at com.google.firebase.concurrent.CustomThreadFactory$$ExternalSyntheticLambda0.run(:4) at java.lang.Thread.run(Thread.java:764)

Measurement Worker: at android.os.BinderProxy.transactNative(Binder.java) at android.os.BinderProxy.transact(Binder.java:764) at android.content.pm.IPackageManager$Stub$Proxy.getApplicationInfo(IPackageManager.java:2948) at android.app.ApplicationPackageManager.getApplicationInfoAsUser(ApplicationPackageManager.java:367) at android.app.ApplicationPackageManager.getApplicationInfo(ApplicationPackageManager.java:360) at com.google.android.gms.common.wrappers.PackageManagerWrapper.getApplicationInfo(com.google.android.gms:play-services-basement@@18.2.0:1) at com.google.android.gms.measurement.internal.zzag.zzj(com.google.android.gms:play-services-measurement-impl@@21.3.0:6) at com.google.android.gms.measurement.internal.zzag.zzk(com.google.android.gms:play-services-measurement-impl@@21.3.0:2) at com.google.android.gms.measurement.internal.zzek.zzj(com.google.android.gms:play-services-measurement-impl@@21.3.0:65) at com.google.android.gms.measurement.internal.zzjz.zzO(com.google.android.gms:play-services-measurement-impl@@21.3.0:9) at com.google.android.gms.measurement.internal.zzjz.zzu(com.google.android.gms:play-services-measurement-impl@@21.3.0:3) at com.google.android.gms.measurement.internal.zzgd.zzH(com.google.android.gms:play-services-measurement-impl@@21.3.0:79) at com.google.android.gms.measurement.internal.zzgc.run(com.google.android.gms:play-services-measurement-impl@@21.3.0:2) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at com.google.android.gms.measurement.internal.zzfz.run(com.google.android.gms:play-services-measurement-impl@@21.3.0:6)

FinalizerDaemon: at java.lang.Object.wait(Object.java) at java.lang.Object.wait(Object.java:422) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209) at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:232) at java.lang.Daemons$Daemon.run(Daemons.java:103) at java.lang.Thread.run(Thread.java:764)

Firebase Blocking Thread #2: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1086) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0$com-google-firebase-concurrent-CustomThreadFactory(CustomThreadFactory.java:47) at com.google.firebase.concurrent.CustomThreadFactory$$ExternalSyntheticLambda0.run(:4) at java.lang.Thread.run(Thread.java:764)

Firebase-Messaging-Topics-Io: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@18.2.0:2) at java.lang.Thread.run(Thread.java:764)

Firebase Background Thread #0: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0$com-google-firebase-concurrent-CustomThreadFactory(CustomThreadFactory.java:47) at com.google.firebase.concurrent.CustomThreadFactory$$ExternalSyntheticLambda0.run(:4) at java.lang.Thread.run(Thread.java:764)

Firebase Blocking Thread #0: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1086) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0$com-google-firebase-concurrent-CustomThreadFactory(CustomThreadFactory.java:47) at com.google.firebase.concurrent.CustomThreadFactory$$ExternalSyntheticLambda0.run(:4) at java.lang.Thread.run(Thread.java:764)

RxSchedulerPurge-1: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764)

Firebase Background Thread #2: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0$com-google-firebase-concurrent-CustomThreadFactory(CustomThreadFactory.java:47) at com.google.firebase.concurrent.CustomThreadFactory$$ExternalSyntheticLambda0.run(:4) at java.lang.Thread.run(Thread.java:764)

queued-work-looper: at android.os.MessageQueue.nativePollOnce(MessageQueue.java) at android.os.MessageQueue.next(MessageQueue.java:325) at android.os.Looper.loop(Looper.java:142) at android.os.HandlerThread.run(HandlerThread.java:65)

TAG: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:868) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1021) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1328) at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232) at com.google.android.gms.tasks.zzad.zza(com.google.android.gms:play-services-tasks@@18.0.2:1) at com.google.android.gms.tasks.Tasks.await(com.google.android.gms:play-services-tasks@@18.0.2:7) at com.google.firebase.messaging.FirebaseMessaging.blockingGetToken(FirebaseMessaging.java:630) at com.google.firebase.messaging.SyncTask.maybeRefreshToken(SyncTask.java:123) at com.google.firebase.messaging.SyncTask.run(SyncTask.java:93) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@18.2.0:2) at java.lang.Thread.run(Thread.java:764)

Crashlytics Exception Handler1: at dalvik.system.VMStack.getThreadStackTrace(VMStack.java) at java.lang.Thread.getStackTrace(Thread.java:1538) at java.lang.Thread.getAllStackTraces(Thread.java:1588) at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.populateThreadsList(CrashlyticsReportDataCapture.java:331) at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.populateExecutionData(CrashlyticsReportDataCapture.java:302) at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.populateEventApplicationData(CrashlyticsReportDataCapture.java:252) at com.google.firebase.crashlytics.internal.common.CrashlyticsReportDataCapture.captureEventData(CrashlyticsReportDataCapture.java:106) at com.google.firebase.crashlytics.internal.common.SessionReportingCoordinator.persistEvent(SessionReportingCoordinator.java:279) at com.google.firebase.crashlytics.internal.common.SessionReportingCoordinator.persistFatalEvent(SessionReportingCoordinator.java:128) at com.google.firebase.crashlytics.internal.common.CrashlyticsController$2.call(CrashlyticsController.java:212) at com.google.firebase.crashlytics.internal.common.CrashlyticsController$2.call(CrashlyticsController.java:197) at com.google.firebase.crashlytics.internal.common.CrashlyticsBackgroundWorker$3.then(CrashlyticsBackgroundWorker.java:105) at com.google.android.gms.tasks.zze.run(com.google.android.gms:play-services-tasks@@18.0.2:1) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:67) at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27) at java.lang.Thread.run(Thread.java:764)

WM.task-2: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764)

RxCachedWorkerPoolEvictor-1: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764)

pool-3-thread-1: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764)

RxCachedThreadScheduler-1: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764)

MessengerIpcClient: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:2137) at sun.misc.Unsafe.park(Unsafe.java:358) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@18.2.0:2) at java.lang.Thread.run(Thread.java:764)`

same issue in react-native: 0.71.3

@cortinico

I’ve run into this issue too while upgradeing to 0.71.2, and have some findings for you! I’m by no means an Android expert and don’t propose a solution, but a workaround that’s working for me right now and hope helps us find a direction.

What I did:

  • Added a println to node_modules/react-native/react.gradle to check the value of config.enableHermes
  • Observed that it’s null and therefore the func enableHermesForVariant defaults to false
  • Therefore, added project.setProperty("react", [ "enableHermes" : true ]) to app/build.gradle, after the new react closure
  • Build the app and the error goes away, and the app runs 🤔

We are using build variants, maybe that could mess with something? I tried adding the following to app/gradle, but didn’t help this time:

react {
  debuggableVariants = ["devDebug", "alphaDebug", "prodDebug"]
  enableHermesOnlyInVariants = [
    "devDebug",
    "alphaDebug",
    "prodDebug",
    "devRelease",
    "alphaRelease",
    "prodRelease"
  ]
}

project.setProperty("react", [ "enableHermes" : true ])

Sorry if this is vague, happy to give as much more info as I’m allowed if necessary.

Don’t know if this issue is still active, but we also have the same issue in Crashlytic: Fatal Exception: java.lang.UnsatisfiedLinkError couldn’t find DSO to load: libhermes.so SoSource

We noticed that all instances are from the device: Redmi Note 13 5G. The specs from this device are: OS | Android 13, MIUI 14 Chipset | Mediatek Dimensity 6080 (6 nm) CPU | Octa-core (2x2.4 GHz Cortex-A76 & 6x2.0 GHz Cortex-A55) GPU | Mali-G57 MC2

having this in 0.72.4

error after upgrading 0.70.7 to 0.71.7

Screenshot 2023-02-17 at 4 15 40 PM

The log I have shared is from the package I am working on for the community, which is a stable version of [react-native-mapbox-navigation]. The existing repository is not being maintained, so I’m working to provide a reliable version for the community using a react-native-builder-bob.

In Android, I found that the app crashes on start, and when I checked the native log, I saw the message “couldn’t find DSO to load: libjscexecutor.so”. However, this issue only occurs when I use the native module. Once I comment out or remove the package’s code, everything works as expected.

@Hmoulvad it’s the only way

Start with the usual suspects, like:

  • reanimated
  • safe area context
  • paper or native base
  • vector icons
  • screens
  • react navigation
  • pager view
  • etc
Screenshot 2024-04-25 at 10 26 47 AM Hi @cortinico Firebase showing this issue. Does anyone have any solution?

hi @cortinico can we consider to re-open this issue? since a lot of people still encountered this

we also encountered this after we upgrade our RN from 0.70 to 0.72

Screenshot 2024-04-24 at 13 34 23
Fatal Exception: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.goshuttle-9Gk3UkIX8wjQxzhOPIzWNg==/base.apk"],nativeLibraryDirectories=[/data/app/com.goshuttle-9Gk3UkIX8wjQxzhOPIzWNg==/lib/arm64, /system/lib64]]] couldn't find "libhermes.so"
       at java.lang.Runtime.loadLibrary0(Runtime.java:1012)
       at java.lang.System.loadLibrary(System.java:1669)
       at com.facebook.soloader.nativeloader.SystemDelegate.loadLibrary(SystemDelegate.java:24)
       at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:52)
       at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:30)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:869)
       at com.facebook.hermes.reactexecutor.HermesExecutor.loadLibrary(HermesExecutor.java:26)
       at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20)
       at com.facebook.hermes.reactexecutor.HermesExecutor.loadLibrary(HermesExecutor.java:24)
       at com.facebook.react.ReactInstanceManagerBuilder.getDefaultJSExecutorFactory(ReactInstanceManagerBuilder.java:379)
       at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:325)
       at com.facebook.react.ReactNativeHost.createReactInstanceManager(ReactNativeHost.java:96)
       at com.facebook.react.ReactNativeHost.getReactInstanceManager(ReactNativeHost.java:42)
       at com.goshuttle.MainApplication.onCreate(MainApplication.java:71)
       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5920)
       at com.elderdrivers.riru.edxp._hooker.yahfa.HandleBindAppHooker.hook(HandleBindAppHooker.java:21)
       at android.app.ActivityThread.access$1100(ActivityThread.java:200)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:193)
       at android.app.ActivityThread.main(ActivityThread.java:6718)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

@Hmoulvad Currently not resolved

See the similar crash in Firebase. Can’t reproduce:

Fatal Exception: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.starbyface-6W44UK16i5ixykdbHumP-A==/base.apk"],nativeLibraryDirectories=[/data/app/com.starbyface-6W44UK16i5ixykdbHumP-A==/lib/x86, /system/lib, /vendor/lib]]] couldn't find "libhermes.so"
       at java.lang.Runtime.loadLibrary0(Runtime.java:1011)
       at java.lang.System.loadLibrary(System.java:1657)
       at com.facebook.soloader.nativeloader.SystemDelegate.loadLibrary(SystemDelegate.java:24)
       at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:52)
       at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:30)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:869)
       at com.facebook.hermes.reactexecutor.HermesExecutor.loadLibrary(HermesExecutor.java:26)
       at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20)
       at com.facebook.hermes.reactexecutor.HermesExecutor.loadLibrary(HermesExecutor.java:24)
       at com.facebook.react.ReactInstanceManagerBuilder.getDefaultJSExecutorFactory(ReactInstanceManagerBuilder.java:379)
       at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:325)
       at com.facebook.react.ReactNativeHost.createReactInstanceManager(ReactNativeHost.java:96)
       at com.facebook.react.ReactNativeHost.getReactInstanceManager(ReactNativeHost.java:42)
       at com.starbyface.MainApplication.onCreate(MainApplication.java:68)
       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1119)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5740)
       at android.app.ActivityThread.-wrap1()
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6494)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

npx react-native info

System:
  OS: macOS 14.1.1
  CPU: (10) arm64 Apple M1 Max
  Memory: 463.27 MB / 32.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 18.15.0
    path: ~/.nvm/versions/node/v18.15.0/bin/node
  Yarn: Not Found
  npm:
    version: 9.5.0
    path: ~/.nvm/versions/node/v18.15.0/bin/npm
  Watchman:
    version: 2023.10.09.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.14.2
    path: /Users/dmitry/.rbenv/shims/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.0
      - iOS 17.0
      - macOS 14.0
      - tvOS 17.0
      - watchOS 10.0
  Android SDK:
    API Levels:
      - "33"
      - "33"
      - "34"
    Build Tools:
      - 30.0.3
      - 33.0.1
      - 33.0.2
      - 34.0.0
    System Images:
      - android-24 | Google Play Intel x86 Atom
      - android-33 | Google Play ARM 64 v8a
    Android NDK: Not Found
IDEs:
  Android Studio: Not Found
  Xcode:
    version: 15.0.1/15A507
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.9
    path: /usr/bin/javac
  Ruby:
    version: 3.2.2
    path: /Users/dmitry/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.72.6
    wanted: 0.72.6
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false

Is it the related issue or should we open a new issue?

same issue in react-native: 0.72.3

facing the same issue on react-native: 0.71.3.

@DearDhruv same issues, stuck here since last week 😥

same issue in 0.71.3

@LewisYearsley thanks for the investigation.

We are using build variants, maybe that could mess with something? I tried adding the following to app/gradle, but didn’t help this time:

Build Variants are complicating the setup indeed. You should be using only the debuggableVariants field as suggested.

Your problem is that you should set hermesEnabled to true in your android/gradle.properties file.

So the correct setup is:

android/app/build.gradle

react {
  debuggableVariants = ["devDebug", "alphaDebug", "prodDebug"]
}

android/gradle.properties

hermesEnabled=true

That should be sufficient

I faced the same problem.

This error throw when I use the app in debugging mode

react-native: “0.71.2”

From our crash reports, below crashes only happens after we’ve upgraded to 0.70+ ( Currently we’re using 0.71.2 ) on production. It’s an early crashes and a repetitive crashes. Although we couldn’t reproduce at this moment. I understand it may not be able to find out the issue, just want to contribute as much as possible.

MainApplication.onCreate ( Line 59 : super.onCreate() )

Fatal Exception: java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libhermes.so SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/~~QAJAEB8uXq_opXWaPmWMpQ==/___==/lib/arm64 flags = 0] SoSource 1: com.facebook.soloader.DirectApkSoSource[root = ()] 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/~~QAJAEB8uXq_opXWaPmWMpQ==/___==/lib/arm64 result: 0

Devices: 50% Android 9 22% Android 12 9% Android 10 8% Android 8 5% Android 13 4% Android 11 2% Android 7

@cortinico after upgrading to 0.71.1 it doesn’t resolve the issue. We couldn’t reproduce the crash, but keep getting it from Crashlytics.

**Fatal Exception: java.lang.UnsatisfiedLinkError**
couldn't find DSO to load: libhermes.so SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/___/lib/arm64 flags = 0] SoSource 1: com.facebook.soloader.DirectApkSoSource[root = ()] 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/___/lib/arm64 result: 0

System: OS: macOS 13.1 CPU: (10) arm64 Apple M1 Pro Memory: 114.23 MB / 16.00 GB Shell: 5.8.1 - /bin/zsh Binaries: Node: 16.15.1 - /opt/homebrew/bin/node Yarn: 1.22.19 - /opt/homebrew/bin/yarn npm: 8.11.0 - /opt/homebrew/bin/npm Watchman: 2022.05.16.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.11.3 - /opt/homebrew/lib/ruby/gems/3.1.0/bin/pod SDKs: iOS SDK: Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1 Android SDK: Not Found IDEs: Android Studio: 2021.3 AI-213.7172.25.2113.9123335 Xcode: 14.2/14C18 - /usr/bin/xcodebuild Languages: Java: 11.0.15 - /usr/bin/javac npmPackages: @react-native-community/cli: Not Found react: Not Found react-native: Not Found react-native-macos: Not Found npmGlobalPackages: react-native: Not Found

i’m facing same issue with my new project created from 0.70.6, issue started after upgrade RN to 0.71.1

“react-native”: “^0.71.1”

#android/app/build.gradle +apply plugin: ‘com.facebook.react’

#android/build.gradle ± classpath(‘com.android.tools.build:gradle:7.2.1’) -> classpath(‘com.android.tools.build:gradle:7.4.0’)

#gradle.properties +hermesEnabled= true

#using buildscript buildToolsVersion = “31.0.0” minSdkVersion = 21 compileSdkVersion = 31 targetSdkVersion = 31

@cortinico do you have any suggestions for me to provide you better information. I am still seeing this issue. I’ve tried to run through all of the Android files, and check diffs towards the template project.

And I don’t see any significant differences.