SoLoader: android.system.ErrnoException on Android 10 and 11
I’m getting crash reports for an app using SoLoader v0.10.1. The reports are coming from devices running Android 10 and 11. The app is published as an AAB (Android App Bundle), which may or may not be related to the problem. I’m wondering if these exceptions are happening when users try to install the app on an incompatible architecture as described in this comment. So this might not be a bug, but I don’t know for sure. All the reports are from new high-end devices like the Galaxy S21, which might indicate that the users are technically savvy enough to sideload APKs.
java.lang.RuntimeException:
at android.app.ActivityThread.handleMakeApplication (ActivityThread.java:7469)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:7405)
at android.app.ActivityThread.access$1500 (ActivityThread.java:301)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2130)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:246)
at android.app.ActivityThread.main (ActivityThread.java:8456)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:596)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
Caused by: java.lang.RuntimeException:
at com.facebook.soloader.SoLoader.init (SoLoader.java:12)
at com.mypackage.App.setupMapbox (App.java:12)
at com.mypackage.App.onCreate (App.java:15)
at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1192)
at android.app.ActivityThread.handleMakeApplication (ActivityThread.java:7464)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:7405)
at android.app.ActivityThread.access$1500 (ActivityThread.java:301)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2130)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:246)
at android.app.ActivityThread.main (ActivityThread.java:8456)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:596)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
Caused by: java.io.FileNotFoundException:
at libcore.io.IoBridge.open (IoBridge.java:492)
at java.io.FileOutputStream.<init> (FileOutputStream.java:236)
at java.io.FileOutputStream.<init> (FileOutputStream.java:186)
at com.facebook.soloader.FileLocker.<init> (FileLocker.java:5)
at com.facebook.soloader.FileLocker.lock (FileLocker.java:3)
at com.facebook.soloader.UnpackingSoSource.prepare (UnpackingSoSource.java:3)
at com.facebook.soloader.SoLoader.initSoSources (SoLoader.java:7)
at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
at com.mypackage.App.setupMapbox (App.java:4)
at com.mypackage.App.onCreate (App.java:15)
at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1192)
at android.app.ActivityThread.handleMakeApplication (ActivityThread.java:7464)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:7405)
at android.app.ActivityThread.access$1500 (ActivityThread.java:301)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2130)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:246)
at android.app.ActivityThread.main (ActivityThread.java:8456)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:596)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
Caused by: android.system.ErrnoException:
at libcore.io.Linux.open (Linux.java)
at libcore.io.ForwardingOs.open (ForwardingOs.java:166)
at libcore.io.BlockGuardOs.open (BlockGuardOs.java:254)
at libcore.io.ForwardingOs.open (ForwardingOs.java:166)
at android.app.ActivityThread$AndroidOs.open (ActivityThread.java:8317)
at libcore.io.IoBridge.open (IoBridge.java:478)
at java.io.FileOutputStream.<init> (FileOutputStream.java:236)
at java.io.FileOutputStream.<init> (FileOutputStream.java:186)
at com.facebook.soloader.FileLocker.<init> (FileLocker.java:5)
at com.facebook.soloader.FileLocker.lock (FileLocker.java:3)
at com.facebook.soloader.UnpackingSoSource.prepare (UnpackingSoSource.java:3)
at com.facebook.soloader.SoLoader.initSoSources (SoLoader.java:7)
at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
at com.mypackage.App.setupMapbox (App.java:4)
at com.mypackage.App.onCreate (App.java:15)
at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1192)
at android.app.ActivityThread.handleMakeApplication (ActivityThread.java:7464)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:7405)
at android.app.ActivityThread.access$1500 (ActivityThread.java:301)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2130)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:246)
at android.app.ActivityThread.main (ActivityThread.java:8456)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:596)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 8
- Comments: 25 (1 by maintainers)
Updating
gradle.properties
didn’t actually correctly update the version for my project. There may be a RN node_modules dependency that might be overriding it in my case, I’m not totally sure. This is what I did to resolve the version for my projectIt is becoming a big issue in our application which is in production. Did anyone manage to find a workaround?
Is it essential to include soloader for react-native apps? is there an alternative?
Pretty sure you can just update your gradle.properties to include
This was helpful for me too, seeing the changes: https://github.com/facebook/SoLoader/releases
Thanks for flagging the new release @mym0404 🙏
Shouldn’t RN update it’s own dependency to SO loader?
Still in our release pipeline, releasing thurs-fri, will keep posted
Same for me on react-native 0.66
With soloader 0.10.3 issue is fixed! Nice work!
@MuhammadRafeh in your Android
app/build.gradle
Hi guys just an update:
The File setWritable solution didn’t work for me. With the new soloader 0.10.2 worked on Android 12 but now I’m facing new errors on my phone.
Interesting @wildseansy! Please let us know here if you get it solved in production!
Thanks for sharing your workaround @brewin . I have some questions though. Are you using react native or is it a native Android app? I’m trying to figure how would this apply to MainApplication.onCreate() since I cannot see that the “load” function would get called anywhere. From what I understand SoLoader.init would already load each library on its own right?