-
Notifications
You must be signed in to change notification settings - Fork 175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SoLoader not compatible with uncompressed native libraries Android feature #30
Comments
PR #26 seems only related to support of split APKs, i.e. the fact that the native libraries are in a separate APK. |
Today I have investigated the exact same issue and it seems that with 0.6.0 it's already solved. We're using react-native 0.56.0 and we've encountered the issue when we upgraded the gradle plugin from 3.2.1 to 3.3.x. react-native 0.56.0 depends on SoLoader 0.3.0 and unfortunately for some ABI changes introduced in 0.5.0 I cannot force the 0.6.0 version. This seems to happen only when using App Bundle with gradle plugin 3.3.x and SoLoader < 0.6.0. We have temporarily reverted to gradle plugin 3.2.1 while waiting to be able to upgrade react-native. |
Great to know, thanks! |
It looks like the fix for this bug was to extract libraries from the APK(s) manually. Is that correct? If so, that doesn't seem like a great solution, as it adds more startup time (especially on first launch when the .so files are extracted) and uses more storage space. Is it not possible just to load uncompressed libraries directly from the APK, as is standard since Android M? |
I work on the Android App Bundle, and we're getting a raising number of developers reporting crash reports when trying to load native libraries with Facebook's SoLoader.
I've tried to trace what the SoLoader does and I may have gotten it wrong, but it seems that it expects the native libraries to be extracted from the APKs during the installation (at least in some circumstances which I couldn't pin-point precisely).
However, since Android Studio 3.3 (and bundletool 0.6.0), when building an Android App Bundle, native libraries are no longer extracted from the APK during the installation due to a feature called "uncompressed native libraries" of the Android platform introduced in Android M which allows the native libraries to remain uncompressed in the APK so that the platform doesn't have to make a copy on the device before reading them.
The text was updated successfully, but these errors were encountered: