Skip to main content

Versioning Strategy

The Embrace Android SDK is built to evolve with the Android ecosystem while maintaining a stable integration experience. This document explains which versions of Android build tools and technologies are supported, and what guarantees you can expect when upgrading.


Minimum supported versions

For versions 8.0.0 and newer, the Embrace Android SDK requires the following minimum tool and platform versions:

TechnologyMinimum Version
Kotlin2.0.21
Gradle8.0.2
Android Gradle Plugin (AGP)8.0.2
minSdk26 *
minCompileSdk34
Build JDK version17
sourceCompatibility11

* Due to a dependency in opentelemetry-java that requires a Java 11 class, you need to enable desugaring to use Embrace with a lower minSdk. With desugaring enabled, Embrace supports minSdk 21, though you should update Gradle to 8.4 and AGP to 8.3.0.


Why we don’t support every version

Supporting very old versions of build tools and libraries has an ongoing maintenance cost. Outdated toolchains often prevent adoption of newer Android APIs and features.

To provide the best experience — modern APIs, better performance, and faster support — the Embrace SDK intentionally follows the evolution of the Android toolchain. While aiming to minimize disruption and support a reasonable range of versions, we expect occasional updates to be necessary.


Our versioning principles

We follow these principles to stay aligned with the Android ecosystem:

Kotlin

The SDK is built with the latest Kotlin version and targets up to four versions behind it. Dropping support for older Kotlin versions only happens in a major SDK release.

AGP and Gradle

We support the latest two major versions of AGP and Gradle, or higher if required by Kotlin. Because these tools don’t strictly follow semantic versioning, we may drop older versions when necessary to maintain compatibility or stability.

minSdk and minCompileSdk

The SDK aligns its minSdk with the minimum required by Jetpack Compose, since most Android projects adopt new minimums when Compose does.

Build-time JDK

The SDK requires the JDK version needed by the minimum supported version of Gradle.

sourceCompatibility

We set sourceCompatibility = 11 and rely on desugaring, which allows apps with lower minSdk values to use modern Java 11+ language features. More info: Java 8+ desugaring in Android Studio

OpenTelemetry API

The SDK tracks the latest stable OpenTelemetry Java and Kotlin APIs. Breaking changes in these projects are rare; if they occur, an assessment will determine whether they require a major SDK release.

NDK

The SDK is always built with the latest stable NDK, since apps don’t link against our native libraries directly.