Native code removed or relocated: what it means for the 16 KB fix
Two measured patterns are not a simple "upgrade to the first aligned version".
Native code removed
The newest release of the artifact contains no arm64-v8a or x86_64 .so at all. Upgrading makes the offending libraries disappear from this artifact, but the functionality may now live in a separate artifact (or be pure Java/Kotlin). Check your resolved dependency tree and run the checker on your final bundle, because the replacement artifact may carry its own natives.
Relocated
The old coordinate's newest release is a POM-only stub that points at a new coordinate (for example TensorFlow Lite to LiteRT). The old artifact will never get an aligned build; you must change the dependency to the new coordinate, and aligned versions are measured under the new name.
Measured cases
- Agora RTC voice-sdk: native code removed in
4.5.0 - Bugsnag: native code removed in
4.17.0 - Fresco animated-webp: native code removed in
0.14.0 - Fresco imagepipeline: native code removed in
2.3.0 - TFLite: relocated to
com.google.ai.edge.litert:litert:1.0.1 - TFLite GPU: relocated to
com.google.ai.edge.litert:litert-gpu:1.0.1
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)