Skip to content

AI & TechnologyGoogle Play 16 KB Page Size: Fixing Flutter and Android Apps

Simon Dziak
Simon Dziak
Founder & developer, App369
LinkedIn
October 18, 20267 min

Key takeaways

  • Google Play requires apps targeting Android 15 (API level 35) and higher to support 16 KB memory page sizes on 64-bit devices. Google says that starting February 1, 2027, updates that don't support 16 KB page sizes can't be released.
  • Only apps with native code are affected: .so files inside the APK. In my experience every Flutter Android release build ships native libraries, so Flutter apps are in scope.
  • Google says apps built with AGP 8.5.1 or higher and NDK r28 or higher, with 16 KB-compatible prebuilt dependencies, are 16 KB compatible by default.
  • Flutter 3.38 (November 12, 2025) moved the default NDK to r28, which Flutter calls the minimum for 16 KB alignment. Flutter 3.35 still defaulted to NDK r27.
  • On a 16 KB device, an app with 4 KB-aligned .so files that are stored uncompressed in the APK can run in a backcompat mode that shows a warning on first launch. Google says that without recompiling, apps won't work on 16 KB devices in future Android releases.

Pricing an app? Try the free app cost calculator or get a range for your project in the instant quote.

If Play Console warns that your app doesn't support 16 KB memory page sizes, the fix is usually a newer Android Gradle Plugin and NDK, plus updated native dependencies. Google requires apps targeting Android 15 and higher to support 16 KB pages on 64-bit devices, and says that starting February 1, 2027, updates without it can't be released. In my experience every Flutter Android app ships native code, so Flutter apps are in scope, and Flutter 3.38 is the first version that defaults to the NDK Google's fix needs.

The facts below come from Google's page-size guide, Google's May 2025 announcement, Flutter's 3.38 release post and Flutter's source code, as listed in the sources. I checked each one on October 18, 2026.

Disclosure: App369 is my studio. I build and fix Android and iOS apps, mostly in Flutter, and the last section mentions what I sell. Google doesn't pay me for anything on this page.

The requirement and the dates

DateWhat Google saidSource
May 2025From November 1, 2025, new apps and updates targeting Android 15+ must support 16 KB page sizesAndroid Developers Blog
As of October 16, 2026Apps targeting Android 15+ must support 16 KB pages on 64-bit devices. From February 1, 2027, updates that don't can't be releasedGoogle page-size guide

The guide, last updated October 16, 2026, is the newer source, so I'd plan around February 1, 2027 and check Play Console for any warning on your own app.

Google's guide also explains why: devices with more memory are moving to 16 KB pages, and without recompiling, apps won't work on 16 KB devices in future Android releases. On a 16 KB device today, an app with 4 KB-aligned .so files that are stored uncompressed in the APK can run in a backcompat mode that shows a warning when it first launches.

Who is affected

Only apps with native code: .so files in the APK's lib folder. That includes apps that use native code through an SDK or library, not just apps you wrote C or C++ for. In my experience, every Flutter Android release build has native libraries in that folder: libflutter.so for the engine and libapp.so for your compiled Dart code. Analyze APK, below, shows them.

Check your app

Google's guide lists three checks:

  1. Analyze APK in Android Studio. Open Build > Analyze APK, pick the APK and look in the lib folder. The Alignment column shows warnings for files with alignment problems.
  2. check_elf_alignment.sh on Linux or macOS. Run it on the APK. It reports whether each library is aligned.
  3. zipalign for zip alignment. Google's example uses the copy in build-tools 35.0.0:
    zipalign -v -c -P 16 4 APK_NAME.apk
    

Fix it

Google's shortcut: if you update to AGP 8.5.1 or higher and NDK r28 or higher, and your prebuilt dependencies are 16 KB compatible, the app is 16 KB compatible by default.

If you're onGoogle's guidance
AGP below 8.5.1Upgrade to 8.5.1 or higher. Google notes that with AGP 8.3 to 8.5, an app can seem to work but fail to install when Play builds it from a bundle. If you can't upgrade, Google gives a useLegacyPackaging setting
NDK r28 or higherCompiles 16 KB-aligned by default
NDK r27 or lowerAdd the linker flags -Wl,-z,max-page-size=16384 and -Wl,-z,common-page-size=16384
Prebuilt .so files from an SDKGet a 16 KB-compatible version from the vendor, or recompile them the same way

Flutter apps

Flutter versionDefault ndkVersion in Flutter's source
3.35 (August 14, 2025)27.0.12077973 (NDK r27)
3.38 (November 12, 2025)28.2.13676358 (NDK r28)

Flutter's 3.38 post calls upgrading "essential preparation" for the 16 KB requirement and says NDK r28 is the minimum for the alignment.

What to do in a Flutter app:

  1. Upgrade Flutter to 3.38 or later, or set ndkVersion in android/app/build.gradle to an r28 version if you can't upgrade yet. My advice: upgrading is safer, because Flutter's 3.38 post lists a set of Gradle, AGP and Kotlin versions that Flutter tested together.
  2. Check the AGP version in android/settings.gradle (or the buildscript block on older projects). It needs to be 8.5.1 or higher.
  3. Update plugins that ship native libraries. My advice: after building, run Analyze APK and look at every .so file. A plugin with an old prebuilt library is the usual reason an app still fails after the Flutter upgrade.
  4. Test on a 16 KB emulator. Google's guide covers Android 15 emulator images with 16 KB page sizes. My advice: install a build there and make sure it starts without the compatibility warning.

If the Flutter upgrade breaks the Android build first, see the v1 embedding fix and the Gradle plugin fix. Google Play also requires new apps and updates to target API 36 since August 31, 2026: see the target API 36 guide.

Need a hand?

If Play Console flags your app for 16 KB page sizes, or an update fails after the fix, the App Fix Ticket covers it in two fixed-price steps. A $450 Diagnosis gives you the root cause with evidence and a fixed repair quote within 3 business days, credited toward the fix. If you go ahead, the $1,200 Fix takes 5 business days and comes as a pull request. Or send me a short description.

Frequently asked questions

What is the Google Play 16 KB page size requirement?
Google says all apps targeting Android 15 (API level 35) and higher must support 16 KB memory page sizes on 64-bit devices on Google Play, and that starting February 1, 2027, app updates that don't support 16 KB page sizes can't be released.
Does my Flutter app need to change for 16 KB pages?
In my experience Flutter apps ship native libraries, so they are in scope. Flutter's 3.38 release notes say 3.38 moved the default NDK to r28, the minimum Flutter names for 16 KB alignment. On an older Flutter, upgrade, or set a newer ndkVersion, and check every plugin that ships its own native libraries.
How do I check whether my APK supports 16 KB pages?
Google lists three ways: Android Studio's Analyze APK shows alignment warnings for .so files in the lib folder, the check_elf_alignment.sh script checks ELF alignment on Linux or macOS, and zipalign -v -c -P 16 4 checks zip alignment.
Which AGP and NDK versions do I need?
Google says AGP 8.5.1 or higher and NDK r28 or higher make an app 16 KB compatible by default, as long as prebuilt dependencies are 16 KB compatible too. With NDK r27 or lower, Google gives linker flags to set a 16 KB max page size.
What happened to the November 1, 2025 date?
Google's May 2025 Android Developers Blog post said that from November 1, 2025, new apps and updates targeting Android 15+ must support 16 KB pages. Google's page-size guide, last updated October 16, 2026, says that starting February 1, 2027, updates without 16 KB support can't be released. Check Play Console for the dates that apply to your app.

Sources

  1. Android Developers, Support 16 KB page sizes (last updated October 16, 2026)
  2. Android Developers Blog, "Prepare your apps for Google Play's 16 KB page size compatibility requirement" (May 2025)
  3. Flutter blog, What's new in Flutter 3.38
  4. Flutter on GitHub, FlutterExtension.kt at 3.35.0 (default ndkVersion)
  5. Flutter on GitHub, FlutterExtension.kt at 3.38.0 (default ndkVersion)
  6. Flutter release archive (macOS)

Fixed-price services

Want this done at a fixed price?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

Tags
#16 kb page size #google play 16 kb page size requirement #flutter 16kb page size #android 15 16 kb #ndk r28 16 kb alignment #agp 8.5.1 16 kb #check_elf_alignment #zipalign -P 16 #play console 16 kb warning #16 kb backcompat mode
Share:

Related Resources

Related guides