react-native-v8: Unsatisfied link error from libjscexecutor.so

Hi, I’m seeing this crash errors on my app - mostly it’s happen on samsung, xiaomi, and oppo devices

From what I understand, react-native-v8 didn’t use jsc anymore as it’s using v8 instead - but the stacktrace reports some jsc-related libraries being loaded 🤔

I’m using:

  • react-native 0.59.10
  • react-native-v8 0.59.10-patch.2
  • and v8-android-nointl 7.5.1

Stack trace:

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libjscexecutor.so caused by: Cannot load library: reloc_library[1306]:   233 cannot locate '_ZN2v88platform18NewDefaultPlatformEiNS0_15IdleTaskSupportENS0_21InProcessStackDumpingENSt6__ndk110unique_ptrINS_17TracingControllerENS3_14default_deleteIS5_EEEE'...

       at com.facebook.soloader.SoLoader.doLoadLibraryBySoName + 738(SoLoader.java:738)
       at com.facebook.soloader.SoLoader.loadLibraryBySoName + 591(SoLoader.java:591)
       at com.facebook.soloader.SoLoader.loadLibrary + 529(SoLoader.java:529)
       at com.facebook.soloader.SoLoader.loadLibrary + 484(SoLoader.java:484)
       at com.facebook.react.jscexecutor.JSCExecutor.<clinit> + 19(JSCExecutor.java:19)
       at com.facebook.react.jscexecutor.JSCExecutorFactory.create + 29(JSCExecutorFactory.java:29)
       at com.facebook.react.ReactInstanceManager$5.run + 944(ReactInstanceManager.java:944)
       at java.lang.Thread.run + 856(Thread.java:856)

we’re using split builds & jumbo mode:

   splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    dexOptions {
        jumboMode true
    }

also probably related - we’re seeing this error also on jsc builds, albeit with slightly different stacktrace - the culprit is the same, though - SoLoader can’t find/link the libraries…

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 1
  • Comments: 20 (5 by maintainers)

Commits related to this issue

Most upvoted comments

@maman @biomancer This issue should be fixed by renaming libv8.so to libv8android.so. More information is described at https://github.com/Kudo/react-native-v8/commit/5a78dd52b0678c18e62972ae5f6cb0f2025e28b4

And sorry for yet another new breaking change. Please use v8-android 7.8.1 with any of these versions:

  • v0.59.10-patch.4
  • v0.60.6-patch.2
  • v0.61.1-patch.3
  • v0.61.2-patch.1
  • v0.61.3-patch.1
  • v0.61.4-patch.1

Hopefully this will help your problems.

@wv1124 Thanks for your information. As mentioned here, please upgrade to use “0.59.10-patch.4”, => “v8-android@7.8.1”, if you upgrade v8-android.

@biomancer @maman Thanks for your amazing information. I was able to reproduce the issue on Firebase Test Lab M8 as well and had some thought for the issue. Will try some solution but it takes some time for me. Please stay tune and will let you know for any updates.

hmm… found some clue from RN’s issue here: https://github.com/facebook/react-native/issues/23764#issuecomment-530801648

packagingOptions {
        pickFirst '**/armeabi-v7a/libc++_shared.so'
        pickFirst '**/x86/libc++_shared.so'
        pickFirst '**/arm64-v8a/libc++_shared.so'
        pickFirst '**/x86_64/libc++_shared.so'
        pickFirst '**/x86/libjsc.so'
        pickFirst '**/armeabi-v7a/libjsc.so'
    }
}

haven’t tried that, because I didn’t exactly know why that “fixed” the problem 😅

ah, i see 👍 thanks for the explanation @Kudo!

closing this issue now, because you fixes this on https://github.com/Kudo/react-native-v8/commit/5a78dd52b0678c18e62972ae5f6cb0f2025e28b4 🙇