Add 16KB page size support for newer Android devices and rebuild native libraries#753
Open
siddhesh-bhadale wants to merge 1 commit into
Open
Conversation
This was referenced Mar 14, 2026
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds support for devices using a 16KB memory page size, which causes
crashes with the current prebuilt native libraries on newer Android devices.
Key changes:
• Updated Gradle from 6.7.1 → 8.13
• Updated Android SDK and NDK configuration
• Removed prebuilt native .so libraries from jniLibs
• Reconfigured native build using Android NDK (externalNativeBuild)
Native libraries are now compiled from source instead of using older
precompiled binaries.
This allows enabling:
ANDROID_SUPPORT_16K_PAGES=true
which provides compatibility with devices using a 16KB memory page size.
Libraries updated:
New AARs generated:
Packaging configuration:
packaging.jniLibs.pickFirst is used to prevent duplicate native library conflicts.
Demo App:
The demo app module is temporarily disabled due to compatibility issues
with the updated Gradle and NDK configuration. The core libraries build
successfully and have been tested in a production Android application.
The demo application can be updated separately in a future PR.
Testing:
The updated libraries were tested with USB cameras in a real Android
application and work correctly on devices using a 16KB memory page size.
Tested devices:
• Realme Narzo N55
• Realme Narzo 80x
• Samsung Galaxy S24 Ultra
• Samsung Galaxy A15
Camera preview and USB device connection worked correctly during testing.
This change improves compatibility with newer Android devices while
maintaining support for existing architectures.
Fixes #746
Fixes #745
Fixes #744
Fixes #735