Android 16 KB fix map

Couchbase Lite 16 KB page-size fix: upgrade to 3.2.3

Artifact com.couchbase.lite:couchbase-lite-android · measured 2026-10-01 · all libraries

fixed

Couchbase Lite versions up to and including 3.2.2 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 3.2.3; the newest measured, 4.1.2, is aligned.

Per-major-line fixes

Different major versions have separate fix paths:

Caveats

Measured evidence

VersionLibrary filep_alignFile dateSource
Last offending3.2.2jni/arm64-v8a/libLiteCore.so4 KB (2^12)Sat, 15 Mar 2025 00:08:52 GMTartifact
First aligned3.2.3jni/arm64-v8a/libLiteCore.so16 KB (2^14)Wed, 30 Apr 2025 18:40:35 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 (15)

1.1.0, 2.5.2.1, 2.5.3, 2.6.4, 2.8.0, 2.8.5, 3.0.0-beta01, 3.0.2, 3.0.15, 3.1.2, 3.1.6, 3.1.9, 3.2.0-beta.1, 3.2.1, 3.2.2

Native libraries seen: libLiteCore.so, libLiteCoreJNI.so, libcom_couchbase_touchdb_RevCollator.so, libcom_couchbase_touchdb_TDCollateJSON.so.

The Gradle change

implementation("com.couchbase.lite:couchbase-lite-android:3.2.3")

an aligned version, lowest measured above the last offending one; newer measured versions are aligned too (latest 4.1.2). Check: ./gradlew :app:dependencyInsight --dependency couchbase-lite-android --configuration releaseRuntimeClasspath // NON-MONOTONE: an aligned release can be followed by an offending one; do not assume newer is safe. Per-release-line guidance: 1.x -> no aligned release measured after offending 1.1.0; 2.x -> no aligned release measured after offending 2.8.5; 2.5.0 was aligned before the regression; 3.x -> use measured aligned 3.2.3 (after offending 3.2.2). Re-run the checker on the version you resolve

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

./gradlew :app:dependencyInsight --dependency couchbase-lite-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/couchbase/lite/couchbase-lite-android/3.2.3/couchbase-lite-android-3.2.3.aar
python3 check16k.py couchbase-lite-android-3.2.3.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 Couchbase Lite?

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)