servo-highfive · GitHub

We don't test anything besides the targetSdk,
and have received multiple issues about servo not working on
older android versions (like 11 or 12).
Hence we bump the `minSdk` version, which should give users
better errors, that their android version is too old.
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

veyndan

We don't test anything besides the targetSdk,
and have received multiple issues about servo not working on
older android versions (like 11 or 12).
Hence we bump the `minSdk` version, which should give users
better errors, that their android version is too old.
This could be reverted later if someone investigates and fixes
the errors on older android versions.
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

@jschwe jschwe changed the title android: Bump minSdk to 34 android: Bump minSdk to 33

Jun 30, 2026

mrobinson

@jschwe

@jschwe

jschwe deleted the android_sdk_version branch

June 30, 2026 17:24

Merged

jschwe added a commit to jschwe/servo that referenced this pull request

Jul 1, 2026
Android 33+ sets the TMPDIR environment variable, but on older versions
it's unset. This leads to a crash on older android versions where the
fallback is outside the app sandbox (/data/local/tmp).
This allows us to lower the minSdk version and probably the default
config directory should never have been TMPDIR in the first place, since
that's not persistent.
I tested with a Pixel 4 emulator API-29, and servoshell seems to work
fine. However, our current build system uses API-30 NDK, so for now we
just restore API-30 support. A follow-up PR could choose a lower NDK
version, and thus lower our minSDK version further. But ideally we add
CI testing first.
This PR effectively reverts servo#46104 and fixes the crash on older devices.
Testing: We don't have automatic tests for android in CI.
Fixes: servo#46115
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

Read the original on github.com ↗