I recently updated my app to support 16 KB page sizes ahead of the Google Play enforcement deadline (May 31, 2026) ☠️, and wanted to share the process in case it helps others dealing with the same issue.
App context
- The app is built entirely using Java and Kotlin
- No direct native code (NDK) usage
Given that, I initially assumed 16 KB page size support wouldn’t be a problem. That assumption didn’t survive contact with reality.
The issue
After analyzing the APK, I found multiple native .so libraries that were not aligned for 16 KB page sizes. These were not part of my codebase but were bundled through third-party dependencies.
Steps I took
- Upgraded Android Gradle Plugin (AGP) Moved to AGP
8.5.1to ensure compatibility with newer build requirements. - Resolved dependency conflicts The AGP upgrade introduced several dependency issues, which I resolved by updating/transitively aligning libraries (with help from documentation, StackOverflow, etc.).
- Identified offending native libraries Used Gradle dependency insights and APK analysis tools to trace which dependencies were introducing non-compliant
.sofiles. - Upgraded third-party libraries Checked the respective library repositories/releases to find versions that explicitly support 16 KB page sizes, and updated dependencies accordingly.
- Handled deprecated library One dependency had been unmaintained since ~2020 and had no support for 16 KB alignment.
- Replaced it with an actively maintained alternative
- Migrated the relevant implementation
Result
After these changes, the APK passed the 16 KB page size checks with no warnings.🥳
Key takeaway
Even if your app doesn’t use native code directly, transitive dependencies can introduce non-compliant binaries. It’s worth auditing your APK early and ensuring all third-party libraries are up-to-date and aligned with current platform requirements.