Skip to main content

πŸ“₯ Android Installation

Maven and JitPack not available yet

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​

  1. Go to the Downloads & install sources page.
  2. Download the Android SDK AAR (zip or Maven-style folder).
  3. Unpack so you have this layout under a single folder (e.g. app/libs):
    • com/azeoo/sdk/<version>/sdk-<version>.aar
    • com/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​

Required in the host app

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")
}
}
}
ABITypical use
armeabi-v7a32-bit ARM phones
arm64-v8a64-bit ARM phones (most devices today)
x86_64Emulators and some tablets
Do not omit this for production

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.

Why this is not inside the SDK AAR

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​