📖 This article is a continuation of my previous post: Understanding Google Play’s 16 KB Page Size Requirement for Android Apps.
If you haven’t read it yet, I recommend starting there for the full context.
Even after updating your SDK/NDK, you might hit issues when testing.
Here are the most common errors and fixes:
❌ Error: INSTALL_FAILED_INVALID_APK: unsupported ELF page size
Cause: Your native libraries (.so files) are built only for 4 KB pages, not 16 KB.
Fix:
- Update NDK to r26+ (older versions don’t support 16 KB)**.
sdkmanager "ndk;26.1.10909125"
- In android/gradle.properties, set:
ANDROID_NDK_VERSION=26.1.10909125
- Clean and rebuild:
./gradlew clean assembleRelease
❌ Error: ELF header missing or corrupted when checking with readelf
Cause: The .so file you extracted isn’t valid or was compressed.
Fix:
- Re-extract from the APK using:
unzip app-release.apk -d extracted_apk
- Navigate to
lib/arm64-v8a/
before runningreadelf
.
❌ Error: App runs on emulator but crashes on physical device (Android 15)
Cause: Some third-party SDKs or libraries bundled in your app may not yet support 16 KB page sizes.
Fix:
Identify the crashing
.so
file from logs (adb logcat
).Update the dependency to the latest version (check release notes for 16 KB support).
If no update exists, contact the library’s maintainer or temporarily remove it.
❌ Error: Your app must support 16 KB page sizes in Google Play Console (even after rebuild)
Cause: Google Play still detects non-compliant native libraries inside your AAB.
Fix:
- Run a full check with:
bundletool build-apks --bundle=app-release.aab --output=output.apks
unzip output.apks -d apks
find apks -name "*.so" | xargs -I {} readelf -h {} | grep "Page size"
Confirm all
.so
files show16384
.If one still shows
4096
, update/rebuild that library.
✅ Best Practice: Always use the latest versions of:
Android Gradle Plugin (8.5+)
NDK (26+)
compileSdkVersion & targetSdkVersion = 35
This ensures forward compatibility with Android 15+ and avoids Play Store rejection.
Top comments (0)