Android 16 KB page-size fix map: 80 native libraries measured
Google Play requires apps targeting Android 15+ to support 16 KB memory pages. Native .so files built with 4 KB ELF alignment break that. For each library below we downloaded the published artifacts and measured the alignment, so you can see which versions are offending and which version fixes it, with the Gradle line.
Free: paste your dependencies to see what needs upgrading, or check any APK, AAB or AAR with a dependency-free script (download check16k.py). The per-library pages are free too.
Fixed: upgrade to an aligned version (63)
| Library | Artifact | Result |
|---|---|---|
| Agora full-rtc-basic | io.agora.rtc:full-rtc-basic | upgrade to 4.5.0 |
| Agora RTC full-sdk | io.agora.rtc:full-sdk | upgrade to 4.3.2.8.test5 |
| Agora RTM | io.agora:agora-rtm | upgrade to 2.2.2 |
| Agora RTM sdk | io.agora.rtm:rtm-sdk | upgrade to 2.2.2 |
| Agora special full | io.agora.rtc:agora-special-full | upgrade to 4.3.2.8 non-monotone |
| androidx.graphics:graphics-path | androidx.graphics:graphics-path | upgrade to 1.0.0 |
| AppLovin | com.applovin:applovin-sdk | upgrade to 12.6.1 |
| ARCore | com.google.ar:core | upgrade to 1.43.0 non-monotone |
| Bugsnag NDK | com.bugsnag:bugsnag-plugin-android-ndk | upgrade to 6.6.0 |
| camera-core | androidx.camera:camera-core | upgrade to 1.4.0 |
| Conscrypt | org.conscrypt:conscrypt-android | upgrade to 2.5.3 |
| Couchbase Lite | com.couchbase.lite:couchbase-lite-android | upgrade to 3.2.3 non-monotone |
| ExecuTorch | org.pytorch:executorch-android | upgrade to 1.0.0 |
| fbjni | com.facebook.fbjni:fbjni | upgrade to 0.7.0 |
| Filament | com.google.android.filament:filament-android | upgrade to 1.53.0 |
| Filament gltfio | com.google.android.filament:gltfio-android | upgrade to 1.53.0 |
| Filament utils | com.google.android.filament:filament-utils-android | upgrade to 1.53.0 |
| Firebase Crashlytics NDK | com.google.firebase:firebase-crashlytics-ndk | upgrade to 19.0.2 |
| Flutter engine libflutter.so (per Flutter stable release; Gradle dependency is the `flutter` SDK version, not this coordinate) | io.flutter:arm64_v8a_release | upgrade to 3.16.0 |
| Fresco animated-gif | com.facebook.fresco:animated-gif | upgrade to 3.4.0 |
| Fresco imagepipeline-native | com.facebook.fresco:imagepipeline-native | upgrade to 3.4.0 |
| Fresco nativeimagetranscoder | com.facebook.fresco:nativeimagetranscoder | upgrade to 3.4.0 |
| Fresco webpsupport | com.facebook.fresco:webpsupport | upgrade to 3.4.0 |
| Hermes | com.facebook.react:hermes-android | upgrade to 0.77.0 |
| infobip google-webrtc | com.infobip:google-webrtc | upgrade to 1.0.41833d |
| IVS broadcast | com.amazonaws:ivs-broadcast | upgrade to 1.23.0 |
| IVS player | com.amazonaws:ivs-player | upgrade to 1.34.0 |
| JNA | net.java.dev.jna:jna | upgrade to 5.16.0 |
| lazysodium-android | com.goterl:lazysodium-android | upgrade to 5.2.0 |
| libsignal-android | org.signal:libsignal-android | upgrade to 0.69.1 |
| libVLC | org.videolan.android:libvlc-all | upgrade to 3.6.3 |
| LiteRT | com.google.ai.edge.litert:litert | upgrade to 1.4.0 |
| LiteRT GPU | com.google.ai.edge.litert:litert-gpu | upgrade to 1.4.0 |
| MapLibre | org.maplibre.gl:android-sdk | upgrade to 11.5.0 |
| MediaPipe tasks-audio | com.google.mediapipe:tasks-audio | upgrade to 0.10.26 |
| MediaPipe tasks-genai | com.google.mediapipe:tasks-genai | upgrade to 0.10.22 |
| MediaPipe tasks-text | com.google.mediapipe:tasks-text | upgrade to 0.10.26 |
| MediaPipe tasks-vision | com.google.mediapipe:tasks-vision | upgrade to 0.10.26 |
| ML Kit barcode-scanning (bundled) | com.google.mlkit:barcode-scanning | upgrade to 17.3.0 |
| ML Kit face-detection (bundled) | com.google.mlkit:face-detection | upgrade to 16.1.7 |
| ML Kit translate | com.google.mlkit:translate | upgrade to 17.0.3 |
| MMKV | com.tencent:mmkv | upgrade to 1.3.14 |
| MMKV static | com.tencent:mmkv-static | upgrade to 1.3.14 |
| ObjectBox | io.objectbox:objectbox-android | upgrade to 4.1.0 |
| ObjectBox browser | io.objectbox:objectbox-android-objectbrowser | upgrade to 4.1.0 |
| Oboe | com.google.oboe:oboe | upgrade to 1.9.3 |
| ONNX Runtime | com.microsoft.onnxruntime:onnxruntime-android | upgrade to 1.21.1 |
| OpenCV | org.opencv:opencv | upgrade to 5.0.0.1 non-monotone |
| OpenTok | com.opentok.android:opentok-android-sdk | upgrade to 2.29.3 non-monotone |
| pdfiumandroid | io.legere:pdfiumandroid | upgrade to 1.0.27 |
| play-services-tflite-java | com.google.android.gms:play-services-tflite-java | upgrade to 16.3.0 |
| React Native react-android | com.facebook.react:react-android | upgrade to 0.77.0 |
| Realm Java library | io.realm:realm-android-library | upgrade to 10.19.0 |
| Sentry NDK | io.sentry:sentry-android-ndk | upgrade to 7.18.0 |
| SQLCipher (sqlcipher-android) | net.zetetic:sqlcipher-android | upgrade to 4.6.1 |
| Stream WebRTC | io.getstream:stream-webrtc-android | upgrade to 1.2.3 |
| Twilio Video | com.twilio:video-android | upgrade to 7.7.1 |
| Twilio Voice | com.twilio:voice-android | upgrade to 6.6.3 |
| Vonage Video | com.vonage:client-sdk-video | upgrade to 2.29.3 non-monotone |
| Vosk | com.alphacephei:vosk-android | upgrade to 0.3.70 |
| webrtc-sdk android | io.github.webrtc-sdk:android | upgrade to 125.6422.01 |
| webrtc-sdk android-prefixed | io.github.webrtc-sdk:android-prefixed | upgrade to 125.6422.02 |
| zstd-jni | com.github.luben:zstd-jni | upgrade to 1.5.7-3 non-monotone |
Native code removed in newer versions (4)
| Library | Artifact | Result |
|---|---|---|
| Agora RTC voice-sdk | io.agora.rtc:voice-sdk | 4.6.4 (from 4.5.0) |
| Bugsnag | com.bugsnag:bugsnag-android | 6.27.1 (from 4.17.0) |
| Fresco animated-webp | com.facebook.fresco:animated-webp | 3.9.0 (from 0.14.0) |
| Fresco imagepipeline | com.facebook.fresco:imagepipeline | 3.9.0 (from 2.3.0) |
Relocated to another artifact (2)
| Library | Artifact | Result |
|---|---|---|
| TFLite | org.tensorflow:tensorflow-lite | com.google.ai.edge.litert:litert:1.0.1 |
| TFLite GPU | org.tensorflow:tensorflow-lite-gpu | com.google.ai.edge.litert:litert-gpu:1.0.1 |
No aligned release found (11)
| Library | Artifact | Result |
|---|---|---|
| Flipper | com.facebook.flipper:flipper | latest 0.273.0 offending |
| Mapbox legacy v9 | com.mapbox.mapboxsdk:mapbox-android-sdk | latest 9.2.1 offending |
| MediaPipe solution-core | com.google.mediapipe:solution-core | latest 0.10.20 offending |
| ONNX Runtime training | com.microsoft.onnxruntime:onnxruntime-training-android | latest 1.19.2 offending |
| OpenCV (quickbirdstudios) | com.quickbirdstudios:opencv | latest 4.5.3.0 offending |
| pdfium-android | com.github.mhiew:pdfium-android | latest 1.9.2 offending |
| PyTorch Android | org.pytorch:pytorch_android | latest 2.1.0 offending |
| PyTorch Android lite | org.pytorch:pytorch_android_lite | latest 2.1.0 offending |
| SQLCipher (legacy android-database-sqlcipher) | net.zetetic:android-database-sqlcipher | latest 4.5.4 offending non-monotone |
| tess-two | com.rmtheis:tess-two | latest 9.1.0 offending |
| TFLite select-tf-ops | org.tensorflow:tensorflow-lite-select-tf-ops | latest 2.16.1 offending |
Need the full map plus the fix guide?
The paid kit ($12, v2) 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 step-by-step guide for Play's 16 KB requirement. This page and the checker script stay free.
Get the kit ($12)Deliberately not claimed
- Mapbox Maps / Navigation / Search SDK v10+ (com.mapbox.maps:android etc.): Served from Mapbox's private Maven (api.mapbox.com/downloads/v2) which needs a secret token; not on Maven Central/Google Maven, so not fetched. (Legacy com.mapbox.mapboxsdk:mapbox-android-sdk on Central IS measured.)
- Unity (editor + il2cpp/engine libs: libunity.so, libil2cpp.so): Shipped inside Unity Editor installs, not any public Maven repo; measuring needs installing editor versions.
- Media3 / ExoPlayer decoder extensions (decoder-av1/vp9/opus/flac/ffmpeg/iamf/midi): Not published as AARs; must be built from source with your own NDK (alignment depends on your NDK, r28+ aligns by default). media3-exoplayer itself measured: no native .so.
- React Native app builds (libreactnative.so, libhermes*.so): See measured react-android / hermes-android entries for the published AARs; app-level result also depends on AGP/NDK of the app.