π₯ Android Installation
The Android SDK is not yet on Maven Central or JitPack. Use the local AAR (flat directory) setup below, as in the example Android app. Download the AAR from the Downloads & install sources page.
Local AAR (flat directory in app/libs)β
Use the AAR by placing it in app/libs in a Maven-style layout and pointing settings.gradle.kts at that folder. This matches the example Android project.
Step 1: Download the SDK AARβ
- Go to the Downloads & install sources page.
- Download the Android SDK AAR (zip or Maven-style folder).
- Unpack so you have this layout under a single folder (e.g.
app/libs):com/azeoo/sdk/<version>/sdk-<version>.aarcom/azeoo/sdk/<version>/sdk-<version>.pom(and optionally.module)- Optionally
com/azeoo/sdk/maven-metadata-local.xml
Step 2: Place the AAR in app/libsβ
Put the unpacked content so that app/libs is the repository root (the folder that contains com/azeoo/sdk/...). Your structure should look like:
your-project/
android/
settings.gradle.kts
app/
build.gradle.kts
libs/ β flat directory root (same as example)
com/
azeoo/
sdk/
1.0.4/
sdk-1.0.4.aar
sdk-1.0.4.pom
maven-metadata-local.xml
Step 3: Point Gradle at app/libs in settings.gradle.ktsβ
In your project-level settings.gradle.kts, add a maven repository whose URL is ${rootDir}/app/libs (same as the example):
// settings.gradle.kts
pluginManagement {
repositories {
google {
content {
includeGroupByRegex("com\\.android.*")
includeGroupByRegex("com\\.google.*")
includeGroupByRegex("androidx.*")
}
}
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
mavenLocal()
// Local AAR (flat directory) β Azeoo SDK
maven {
url = uri("${rootDir}/app/libs")
}
// Flutter engine (required by Azeoo SDK)
maven("https://storage.googleapis.com/download.flutter.io")
}
}
rootProject.name = "My Application"
include(":app")
Step 4: Declare the dependencyβ
Option A β Version catalog (recommended, same as example)
In gradle/libs.versions.toml:
[versions]
sdk = "1.0.4" # must match the version folder under app/libs/com/azeoo/sdk/
[libraries]
sdk = { module = "com.azeoo:sdk", version.ref = "sdk" }
In app/build.gradle.kts:
dependencies {
implementation(libs.sdk)
// ... other dependencies
}
Option B β Direct coordinates
In app/build.gradle.kts:
dependencies {
implementation("com.azeoo:sdk:1.0.4") // version must match app/libs/com/azeoo/sdk/
// ... other dependencies
}
Step 4b: Required β NDK ABI filters in your app moduleβ
You must add ndk.abiFilters in your application module (app/build.gradle.kts). The Azeoo SDK AAR does not apply this for you β Gradle does not merge ABI filters from a Maven dependency into your app.
The SDK bundles Flutter and JNI native libraries (libflutter.so, plugin .so files) for a fixed set of CPU architectures. Your app must declare the same ABIs so Gradle packages the correct .so files into the APK. Without this, you may see build failures or runtime errors such as UnsatisfiedLinkError: dlopen failed.
Add this inside android { defaultConfig { ... } } in app/build.gradle.kts (not only in the example project):
android {
defaultConfig {
// ... applicationId, minSdk, etc.
ndk {
// Must match Flutter / Azeoo SDK supported architectures
abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86_64")
}
}
}
| ABI | Typical use |
|---|---|
armeabi-v7a | 32-bit ARM phones |
arm64-v8a | 64-bit ARM phones (most devices today) |
x86_64 | Emulators and some tablets |
Even if the debug build works without it, keep these filters in release as well so device and emulator ABIs stay aligned with the SDK.
abiFilters is an Android Gradle Plugin setting on the application (or local library) module. A published com.azeoo:sdk AAR only ships prebuilt jni/ libraries; it cannot inject defaultConfig into your build.gradle.kts. The example Android app includes the same block for that reason.
Step 5: Sync and verifyβ
Sync Gradle. If the project compiles and you can use import com.azeoo.sdk.AzeooSDK, the local AAR setup is correct.
Requirementsβ
- minSdkVersion: 21 (Android 5.0)
- targetSdkVersion: Latest
- Kotlin: 1.9.0 or later
- Gradle: 8.0 or later
ProGuard rulesβ
If you use ProGuard, add to proguard-rules.pro:
-keep class com.azeoo.sdk.** { *; }
-keep interface com.azeoo.sdk.** { *; }
-dontwarn com.azeoo.sdk.**
Next stepsβ
- Integration Guide β Integrate the SDK in your app
- Configuration β SDK settings
- API Reference β API documentation