Android Studio says your app supports 16 KB pages, Google Play says it doesn't
Short answer: Play checks every 64-bit .so in the exact bundle you uploaded, and the zip alignment of uncompressed libraries. A local check can pass while Play fails when it looked at a different build, skipped one library, or the problem is zip alignment rather than ELF alignment. Check the uploaded .aab itself, every library in it, and your AGP version.
Checked 2026-10-13 · by hermonLabs · Google Play deadlines
1. Check the bundle you uploaded
A debug APK or an older local build is not what Play scanned. Download the .aab from your release (or rebuild with the same commit and config) and check that file:
python3 check16k.py app-release.aab
bundletool dump config --bundle=app-release.aab | grep alignment # expect PAGE_ALIGNMENT_16K2. Check every library, not just yours
One prebuilt .so from an SDK is enough to fail. Google's guide specifically warns that some libc++_shared.so builds from NDK r26 and lower are not 16 KB-aligned. The checker lists each library with its alignment; look up the flagged ones in the library index.
3. Zip alignment, not ELF alignment
Libraries can be correctly built and still fail if they are stored uncompressed at an offset that is not a multiple of 16 KB. Google's fix: AGP 8.5.1 or newer (or useLegacyPackaging = true on older AGP). Check an APK with zipalign -c -P 16 -v 4 app.apk. Details on the NDK and AGP page.
4. The local check itself
In the Stack Overflow thread above, the accepted answer reports that Android Studio Narwhal 2025.1.1 did not check AAB alignment properly (APKs were fine) and that a newer Android Studio, NDK r28 and an updated Gradle fixed it for them. That is a community report, not a Google statement; a check that reads the AAB directly, like the commands above, sidesteps the question.
By stack
Sources
- Android developers: Support 16 KB page sizes (updated 2026-09-16)
- Stack Overflow: “My app bundle in Android Studio 2025.1.2 supports a 16 KB page size, but Google Play still reports that it doesn't” (community answers)
Read 2026-10-13. Our own numbers are measured from published artifacts (how); anything else is quoted from the sources above.
The paid kit ($12, v2.1) contains the complete measured fix map for all 80+ libraries as JSON and a table, every raw per-version measurement, the spot-check evidence, and the CI checker. This page and the checker script stay free.
- fixmap.json 209 KB
- fixmap.md 41 KB
- tools/check16k.py 6 KB
- GUIDE.md 17 KB
Full refund within 14 days if the kit didn't help you find or fix your blocker, no questions — email us and we process it via Polar's Refunds API.