Installation

Add the Gradle dependency from Maven Central

The Convert Android SDK is published to Maven Central as com.convert:sdk-android. It is a standard Android library (AAR) with no special repository requirements beyond Maven Central and Google's Maven repo.

Gradle dependency

Declare both repositories in settings.gradle.kts, then add the dependency to your app (or library) module:

// settings.gradle.kts
dependencyResolutionManagement {
    repositories {
        mavenCentral()
        google()
    }
}

// app/build.gradle.kts
dependencies {
    implementation("com.convert:sdk-android:+")
}

The + resolves to the latest published version. Pin a specific version in production so your builds are reproducible; replace + with the version shown on the Maven Central listing.

Toolchain requirements

ToolchainMinimum
JDK (to build)17
Android API (runtime, minSdk)24 (Android 7.0)
Android API (compile, compileSdk)35 recommended
Kotlin2.x (binary-compatible with any 2.x consumer)
Gradle8.x
Android Gradle Plugin8.x or newer

The SDK targets minSdk 24. Building against a lower minSdk fails — raise your module's minSdk to at least 24.

ProGuard / R8

The SDK ships a consumer-rules.pro inside the AAR. When your app enables R8, those consumer rules are applied automatically — you do not need to copy any keep rules into your own ProGuard configuration.

If you see a stripped-class warning from R8 that points at an SDK class, that indicates a gap in the consumer rules. Open a GitHub issue with the obfuscation report so the rules can be patched.

Permissions

The SDK requires no permission to function. INTERNET is merged automatically from the library's manifest.

For the best offline-recovery behavior, declare ACCESS_NETWORK_STATE in your app's AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

The SDK uses this permission to observe connectivity changes. When the device regains connectivity, the SDK triggers an immediate flush of any events queued while offline.

If the permission is missing, the SDK degrades gracefully: it catches the resulting SecurityException during observer registration and continues. Queued events still flush on the next scheduled batch — only the "flush immediately on reconnect" optimization is skipped. See Offline Behavior.

Verifying the integration

After adding the dependency and initializing the SDK (see Initialization), set logLevel(LogLevel.DEBUG) and watch Logcat:

adb logcat -s ConvertSDK:V

A successful integration logs the config fetch and, once ready, fires the ready event. See Troubleshooting if decisions keep returning null.

Next steps