Agora full-rtc-basic 16 KB page-size fix: upgrade to 4.5.0
Artifact io.agora.rtc:full-rtc-basic · measured 2026-10-01 · all libraries
fixed
Agora full-rtc-basic versions up to and including 4.4.1 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 4.5.0; the newest measured, 4.6.4, is aligned.
- The boundary is not exact: only prerelease or unlisted versions lie between the last offending and the first aligned version, so an earlier aligned stable version cannot be ruled out.
- Sampled, not exhaustive: 34 of 48 published versions were measured with native code; unmeasured versions in between are unknown.
Measured evidence
| Version | Library file | p_align | File date | Source | |
|---|---|---|---|---|---|
| Last offending | 4.4.1 | jni/arm64-v8a/libagora-fdkaac.so | 4 KB (2^12) | Wed, 07 Aug 2024 10:54:05 GMT | artifact |
| First aligned | 4.5.0 | jni/arm64-v8a/libagora-fdkaac.so | 16 KB (2^14) | Tue, 26 Nov 2024 02:34:09 GMT | artifact |
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 (23)
3.6.2, 3.6.2.2, 3.6.2.3, 3.6.2.214, 3.6.3, 3.7.0, 3.7.0.1, 3.7.0.2, 3.7.0.3, 3.7.2.1, 4.0.0-rc.1, 4.1.0, 4.1.1.34.test1, 4.2.0, 4.2.2, 4.3.0, 4.3.1, 4.3.2, 4.4.0, 4.4.1, 12-15-ci-test, 12-15-ci-test-2, 12-16-ci-test-2
Native libraries seen: libagora-core.so, libagora-fdkaac.so, libagora-ffmpeg.so, libagora-rtc-sdk.so, libagora-soundtouch.so, libagora_dav1d.so, libagora_fdkaac.so, libagora_mpg123.so, libaosl.so, libvideo_dec.so.
The Gradle change
implementation("io.agora.rtc:full-rtc-basic:4.5.0")an aligned version, lowest measured above the last offending one; newer measured versions are aligned too (latest 4.6.4). Check: ./gradlew :app:dependencyInsight --dependency full-rtc-basic --configuration releaseRuntimeClasspath
Confirm what Gradle actually resolves, since another dependency may pull an older version:
./gradlew :app:dependencyInsight --dependency full-rtc-basic --configuration releaseRuntimeClasspathRe-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/agora/rtc/full-rtc-basic/4.5.0/full-rtc-basic-4.5.0.aar
python3 check16k.py full-rtc-basic-4.5.0.aarExit 0 = aligned, 1 = an unaligned library found. Better still, run it on your final .aab/.apk.
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
- Agora RTC voice-sdk (io.agora.rtc:voice-sdk)
- Agora special full (io.agora.rtc:agora-special-full)
- Agora RTC full-sdk (io.agora.rtc:full-sdk)
- Agora RTM sdk (io.agora.rtm:rtm-sdk)
- Agora RTM (io.agora:agora-rtm)