I currently distribute an app over the Play Store. I use Android App Bundles for better download experience. Besides other libraries, I use react-native
. Now I get multiple reportings from different users, that the app won't start. Looking into the error logs I received the error message looks like this:
Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so
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.bridge.ReactBridge.staticInit + 31(ReactBridge.java:31)
at com.facebook.react.bridge.NativeMap.<clinit> + 19(NativeMap.java:19)
at com.facebook.react.jscexecutor.JSCExecutorFactory.create + 25(JSCExecutorFactory.java:25)
at com.facebook.react.ReactInstanceManager$5.run + 944(ReactInstanceManager.java:944)
at java.lang.Thread.run + 776(Thread.java:776)
The configuration in my build.gradle
looks like this:
ndk.abiFilters 'armeabi-v7a','arm64-v8a'
and if I unpack my app bundle, there is a lib folder containing an armeabi-v7a
folder as well as an arm64-v8a
folder. Inside those folder all the necessary library files are present, including libreactnativejni.so
But there is one detail in all the error reports. My app uses ArCore and is therefore only compatible with specific devices. All the crashes I received come form devices, which don't support ArCore naturally, which means, that those devices are rooted but still downloaded the app from the Play Store. Do Android App Bundles not work with rooted devices or is there any other error I'm making?