Unity · Last updated May 13, 2026
Fix “Not compatible with 16 KB page size devices” in Unity
Unity teams have an extra wrinkle compared to a standard Android Gradle project: most of the native code in the APK isn’t yours, it’s generated by IL2CPP and shipped as part of the Unity engine. That means whether your build is 16 KB-ready is largely a function of the Unity editor version you use—plus any Asset Store plugin that wraps a native library.
1. Use a Unity version that targets 16 KB
Unity backported 16 KB page-size support into three LTS lines. Anything older needs to be upgraded before Play Console will accept the release:
| Unity line | Minimum 16 KB-ready version |
|---|---|
| 2022 LTS | 2022.3.49f1 or newer |
| 2023 LTS | 2023.2.20f1 or newer |
| Unity 6.0 | 6.0.10f1 or newer |
Older lines (Unity 2021 LTS and earlier) are out of support for 16 KB; you must upgrade your project.
2. Player Settings checklist
- Scripting Backend: IL2CPP. Mono is not supported with 64-bit, so this is required.
- Target Architectures: enable
ARM64. You can also keepARMv7for legacy devices—it’s exempt from the 16 KB rule. - Target API Level: 35 (Android 15).
- Custom Main Gradle Template: enable it if you need to pin the NDK version (rarely needed in 6.0).
- Build App Bundle (Google Play): on, so you ship an AAB rather than a fat APK.
3. Audit Asset Store plugins
Even with a 16 KB-ready Unity, Asset Store packages can drag in old .sofiles that fail the check. The biggest categories to watch:
- Ad networks (AppLovin MAX, ironSource, Google Mobile Ads).
- Analytics (Firebase, Singular, Adjust, AppsFlyer).
- Audio middleware (FMOD, Wwise).
- Video / streaming plugins.
- Custom networking libraries built on Native Sockets.
Drop your AAB into 16kb Checker. The native libraries panel will show the failing path—Unity plugin paths usually look like lib/arm64-v8a/lib<plugin>.so or are nested under assets/bin/Data/Native/. Match the path to the package in your project and pull the maintainer’s 16 KB release.
4. Build & verify
# CLI build (CI-friendly)
$ /Applications/Unity/Hub/Editor/6000.0.10f1/Unity.app/Contents/MacOS/Unity \
-batchmode -quit -projectPath . \
-buildTarget Android \
-executeMethod BuildScript.BuildAABScan the produced .aab in 16kb Checker. Expect to see clean passes for libunity.so, libil2cpp.so, and libmain.so. Any failures are almost always third-party plugins and need a maintainer update.
Verify your Unity build before submitting to Play Console:
Scan your AABFree · No upload · Browser-only