Android 16 KB fix map

pdfiumandroid 16 KB page-size fix: upgrade to 1.0.27

Artifact io.legere:pdfiumandroid · measured 2026-10-01 · all libraries

fixed

pdfiumandroid versions up to and including 1.0.26 that we measured ship 4 KB-aligned native libraries (offending for Google Play's 16 KB page-size requirement). The first measured aligned stable version is 1.0.27; the newest measured, 2.0.3, is no-native-64bit.

Caveats

Measured evidence

VersionLibrary filep_alignFile dateSource
Last offending1.0.26jni/arm64-v8a/libpdfiumandroid.so4 KB (2^12)Sat, 28 Dec 2024 12:06:20 GMTartifact
First aligned1.0.27jni/arm64-v8a/libpdfium.so16 KB (2^14)Thu, 09 Jan 2025 16:52:07 GMTartifact

p_align is the smallest PT_LOAD segment alignment of the ELF. 16 KB-compatible needs at least 16384 (2^14). Method: min PT_LOAD p_align of arm64-v8a/x86_64 .so inside the published AAR/JAR; aligned = >=16384 for every lib. Dates are repository file times, not official release dates.

Offending versions measured (14)

1.0.1, 1.0.5, 1.0.6, 1.0.7, 1.0.8, 1.0.9, 1.0.10, 1.0.12, 1.0.15, 1.0.17, 1.0.19, 1.0.23, 1.0.24, 1.0.26

Native libraries seen: libabsl.cr.so, libc++_chrome.cr.so, libchrome_zlib.cr.so, libicuuc.cr.so, libpartition_alloc.cr.so, libpdfium.cr.so, libpdfium.so, libpdfiumandroid.so.

The Gradle change

implementation("io.legere:pdfiumandroid:1.0.27")

an aligned version, lowest measured above the last offending one; newer measured versions are aligned too (latest 2.0.3, which ships no 64-bit .so: natives removed or moved, measure the separate artifact). Check: ./gradlew :app:dependencyInsight --dependency pdfiumandroid --configuration releaseRuntimeClasspath // NATIVES MOVED (latest has no 64-bit .so). Successor artifacts measured 2026-10-01 (data/successors-2026-10-01.json): pdfiumandroid-core:2.0.3 aligned. Only these versions were measured; any other successor version is UNVERIFIED

Confirm what Gradle actually resolves, since another dependency may pull an older version:

./gradlew :app:dependencyInsight --dependency pdfiumandroid --configuration releaseRuntimeClasspath

Re-verify it yourself

Download the artifact and run the free checker (check16k.py, Python 3, no dependencies):

curl -LO https://repo1.maven.org/maven2/io/legere/pdfiumandroid/1.0.27/pdfiumandroid-1.0.27.aar
python3 check16k.py pdfiumandroid-1.0.27.aar

Exit 0 = aligned, 1 = an unaligned library found. Better still, run it on your final .aab/.apk.

Need the full map for every library, not just pdfiumandroid?

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)

Related artifacts