question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[ANDROID] SoLoader error using App Bundle

See original GitHub issue

🐛 Bug Report

Please help! There are some crashes happening in android using app bundle but I am not sure how to reproduce it. It happens on our app with daily crash of 200 users.

Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so
       at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:738)
       at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:591)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:529)
       at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:484)
       at com.facebook.react.bridge.ReactBridge.staticInit(ReactBridge.java:30)
       at com.facebook.react.bridge.NativeMap.(NativeMap.java:19)
       at com.facebook.react.jscexecutor.JSCExecutorFactory.create(JSCExecutorFactory.java:25)
       at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:944)
       at java.lang.Thread.run(Thread.java:764)

The errors have multiple variations that occur on various android versions.

Fatal Exception: java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libreactnativejni.so caused by: couldn't find DSO to load: libfb.so caused by: couldn't find DSO to load: libgnustl_shared.so caused by: dlopen failed: "/data/data/com.traveloka.android/lib-0/libgnustl_shared.so" is 64-bit instead of 32-bit
Fatal Exception: java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libreactnativejni.so caused by: couldn't find DSO to load: libfb.so caused by: Dynamic section string-table not found
Fatal Exception: java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libreactnativejni.so

To Reproduce

We have tried to reproduce it with many devices but we can only reproduce it in one condition.

  1. Install the release app
  2. Upgrade OS from 32bit to 64bit
  3. Open the app

If we reinstall the app afterwards, it works fine. Although, we are still unsure whether it is the only error case.

Expected Behavior

The app does not crash on any device.

Code Example

android {
    ...
    defaultConfig {
       ...
        ndk {	
            abiFilters "armeabi-v7a", "x86", "arm64-v8a"
        }
    }
}

Environment

React Native Environment Info:
    System:
      OS: macOS 10.14
      CPU: x64 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
      Memory: 4.93 GB / 16.00 GB
      Shell: 5.3 - /bin/zsh
    Binaries:
      Node: 8.10.0 - ~/.nvm/versions/node/v8.10.0/bin/node
      Yarn: 1.13.0 - /usr/local/bin/yarn
      npm: 6.8.0 - ~/.nvm/versions/node/v8.10.0/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
      Android SDK:
        Build Tools: 23.0.1, 24.0.0, 24.0.3, 26.0.2, 26.0.3, 27.0.0, 27.0.3, 28.0.0, 28.0.2, 28.0.3
        API Levels: 23, 24, 25, 26, 27, 28
    IDEs:
      Android Studio: 3.3 AI-182.5107.16.33.5264788
      Xcode: 10.1/10B61 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.6.3 => 16.6.3 
      react-native: 0.58.4 => 0.58.4 

Issue Analytics

  • State:open
  • Created 5 years ago
  • Reactions:87
  • Comments:104 (17 by maintainers)

github_iconTop GitHub Comments

60reactions
minhh1commented, Sep 12, 2019

Try adding this in your app build.gradle:

android {
...
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'
    }
}
43reactions
soroushmcommented, May 30, 2020

Dublicate issue https://github.com/facebook/react-native/issues/28163

this command work for me cd android/ Run ./gradlew clean

That should probably fix this.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Support 64-bit architectures - Android Developers
The goal is to ensure that your app runs correctly in a 64-bit-only environment. In a typical case, an APK or bundle that's...
Read more >
React Native: App crashes on start due to SoLoader issue
The installation is clean, and I have checked that I am not missing anything in the build.gradle file. Error 02-13 11:56:31.627 7613 ......
Read more >
Adding Flipper to Android apps with Gradle
To set up Flipper for Android, you need to add the necessary dependencies to your app, initialize the Flipper client and enable the...
Read more >
Use a pre-launch report to identify issues - Play Console Help
After you upload and publish a test Android App Bundle, we install it on a set of Android devices in our test lab....
Read more >
Integration with Existing Apps - React Native
React Native is great when you are starting a new mobile app from scratch. ... x.x" errors after running Gradle sync in Android...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found