Android 16 KB fix map

Hermes 16 KB page-size fix: upgrade to 0.77.0

Artifact com.facebook.react:hermes-android · measured 2026-10-01 · all libraries

fixed

Hermes versions up to and including 0.76.9 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 0.77.0; the newest measured, 0.82.1, is aligned.

Caveats

Measured evidence

VersionLibrary filep_alignFile dateSource
Last offending0.76.9jni/arm64-v8a/libhermes.so4 KB (2^12)Thu, 03 Apr 2025 11:43:18 GMTartifact
First aligned0.77.0jni/arm64-v8a/libhermes.so16 KB (2^14)Tue, 21 Jan 2025 11:47:04 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 (25)

0.71.0, 0.71.0-rc.1, 0.71.0-rc.2, 0.71.0-rc.3, 0.71.0-rc.4, 0.71.0-rc.5, 0.71.0-rc.6, 0.71.1, 0.71.2, 0.71.10, 0.71.18, 0.72.0, 0.72.8, 0.72.16, 0.73.0-rc.6, 0.73.5, 0.74.0-rc.1, 0.74.0-rc.9, 0.74.6, 0.75.0-rc.7, 0.76.0-rc.1, 0.76.2, 0.76.6, 0.76.8, 0.76.9

Native libraries seen: libhermes.so, libhermesvm.so.

The Gradle change

implementation("com.facebook.react:hermes-android:0.77.0")

an aligned version, lowest measured above the last offending one; newer measured versions are aligned too (latest 0.82.1). Check: ./gradlew :app:dependencyInsight --dependency hermes-android --configuration releaseRuntimeClasspath

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

./gradlew :app:dependencyInsight --dependency hermes-android --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/com/facebook/react/hermes-android/0.77.0/hermes-android-0.77.0-release.aar
python3 check16k.py hermes-android-0.77.0-release.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 Hermes?

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)