Effects Android
Effects / Get started / Installation / Android

Install the Nosmai Effects SDK on Android

Updated September 19, 2026

Add the verified 3.0.5 AAR to an Android project and confirm its API, Java, permission, and ARM64 requirements.

Prerequisites

  • An Android application with minimum API 24 or later
  • Android compile SDK 35 for the current integration baseline
  • Java 11 bytecode compatibility
  • A physical Android device whose ABI list contains arm64-v8a or armeabi-v7a
  • A Nosmai license key bound to the application's exact application ID

Requirement details

  • AAR is the Android library file added to the app.
  • API level identifies an Android version and the system features available to the app. Minimum API 24 means Android 7.0 is the oldest supported Android version for this native SDK release.
  • Compile SDK 35 means the project builds against Android's API 35 tools. It does not mean every user must run Android 15.
  • ABI describes native processor compatibility. Nosmai Effects SDK 3.0.5 supports arm64-v8a for compatible 64-bit ARM devices and armeabi-v7a for compatible 32-bit ARM devices.
  • Java 11 compatibility is a project build setting required by this release.
  • Android emulators using x86 or x86_64 are not supported by the current AAR. Use a supported physical ARM device for camera and runtime verification.

Download and verify the AAR

Create the application library directory:

mkdir -p app/libs

Download the native SDK and checksum file from the official Android v3.0.5 release.

A checksum is a digital fingerprint used to confirm that the downloaded file is complete and unchanged. SHA-256 is the checksum algorithm used for this release.

curl -L \
  -o app/libs/nosmai-sdk-3.0.5.aar \
  https://github.com/nosmai/nosmai_effects_sdk_android/releases/download/v3.0.5/nosmai-sdk-3.0.5.aar

curl -L \
  -o app/libs/SHA256SUMS \
  https://github.com/nosmai/nosmai_effects_sdk_android/releases/download/v3.0.5/SHA256SUMS

Verify the downloaded AAR from the directory containing both files:

cd app/libs
shasum -a 256 -c SHA256SUMS
cd ../..

A successful verification prints:

nosmai-sdk-3.0.5.aar: OK

The expected SHA-256 checksum for nosmai-sdk-3.0.5.aar is:

c1474da6106926ab1fb152e404a02666456da7bed92c2aefa6e275b356b2f58f

Do not integrate, rename, or distribute an AAR that fails checksum verification. Download the artifact again from the official release if the calculated checksum does not match.

Configure the app module

Add the verified AAR to the application module and configure the supported Android requirements.

For Kotlin DSL (build.gradle.kts):

android {
    compileSdk = 35

    defaultConfig {
        minSdk = 24

        ndk {
            abiFilters += listOf("arm64-v8a", "armeabi-v7a")
        }
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }
}

dependencies {
    implementation(files("libs/nosmai-sdk-3.0.5.aar"))
}

For Groovy DSL (build.gradle):

android {
    compileSdkVersion 35

    defaultConfig {
        minSdkVersion 24

        ndk {
            abiFilters 'arm64-v8a', 'armeabi-v7a'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
}

dependencies {
    implementation files('libs/nosmai-sdk-3.0.5.aar')
}

The AAR contains native libraries for both supported Android ABIs. If the application uses an Android App Bundle, Google Play delivers the matching ABI to each compatible device instead of delivering both native architectures to every user.

The AAR also contains consumer R8 rules for the public API, JNI entry points, frame callbacks, and Cloud Filter response types. Keep the application's normal release minification configuration. When adding custom shrinking or obfuscation rules, inspect the merged R8 configuration and verify the signed release build on both supported ABI types where possible.

Add Android permissions

Add the permissions required by the application features:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />

    <application
        android:allowBackup="true"
        android:label="CameraApp"
        android:theme="@style/Theme.CameraApp" />
</manifest>

Request CAMERA permission at runtime before opening the Camera2 source.

Request RECORD_AUDIO permission only when the application records video with audio. The permission is not required for a camera preview without audio recording.

Internet access is used for license verification, Cloud Filter catalog requests, and Cloud Filter downloads. Previously downloaded effects may remain available through SDK-managed storage, subject to license state and operating-system cache behavior.

AAR size

The 3.0.5 AAR is 59,140,732 bytes, approximately 56.4 MiB. It contains native libraries for both arm64-v8a and armeabi-v7a.

The AAR size is not the same as the final Play Store download increase. Android App Bundle ABI delivery, store compression, existing shared dependencies, resources, and symbols affect the size delivered to each device.

Build a signed release Android App Bundle and inspect its device-specific download and installed sizes in Google Play Console before publishing.

Verify the installation

Add a version log after application startup:

import android.util.Log;
import com.nosmai.effect.api.NosmaiSDK;

Log.i("CameraApp", "Nosmai version: " + NosmaiSDK.getVersion());

Build and install the application on a physical Android device that supports arm64-v8a or armeabi-v7a and runs Android API 24 or later.

A successful build and launch showing version 3.0.5 confirms that the Java classes and matching native libraries are packaged correctly.

Continue to the Android quickstart to initialize the SDK, connect the Camera2 source, display the processed preview, and apply skin smoothing.

Common errors

ErrorCauseFix
Could not find com.nosmai or package com.nosmai.effect.api does not existThe application module does not reference the AAR, or the file is stored at a different pathPlace nosmai-sdk-3.0.5.aar in app/libs and add implementation(files("libs/nosmai-sdk-3.0.5.aar"))
INSTALL_FAILED_NO_MATCHING_ABISThe target device or packaged application does not contain a compatible arm64-v8a or armeabi-v7a native libraryUse a supported physical ARM device and retain at least one supported ABI in abiFilters
minSdkVersion compatibility errorThe application is configured with a minimum Android API lower than the SDK's supported baselineSet the application module's minimum SDK to API 24 or later
UnsatisfiedLinkErrorThe AAR is missing, corrupted, duplicated, incorrectly packaged, or its native libraries were removedVerify the SHA-256 checksum, keep one AAR copy, inspect the packaged lib directories, and review custom R8 or packaging rules
Duplicate class or duplicate native library errorMore than one version or copy of the Nosmai AAR is includedRemove older AARs and keep exactly one verified 3.0.5 AAR in the application dependency graph
License key cannot be null or emptyThe application configuration did not supply a Nosmai license keyLoad the app-bound key before calling NosmaiSDK.initialize
License verification fails with an application ID mismatchThe installed application's final applicationId does not match the identity registered in Nosmai ConsoleRegister the exact application ID used by the signed build and use the Android key created for that identity
Cleartext HTTP traffic not permittedThe application is loading a development asset or effect package over an insecure HTTP connectionUse HTTPS, or add an explicit development-only network security configuration without weakening the production application
Camera preview does not startCamera permission is missing, another component owns the camera, or processing started before initialization completedGrant camera permission, release any existing camera controller, wait for successful initialization, and then start the Camera2 and Nosmai processing pipeline
App installs on one device but not anotherThe second device uses an unsupported ABI, Android version, or emulator architectureConfirm that the device runs API 24 or later and reports arm64-v8a or armeabi-v7a in its supported ABI list

Next steps

References

Nosmai

An AR and AI company. Founded on the idea that the next decade of software will be visual, and that the tools for it should be within reach of anyone building.

Newsletter

Product updates and release notes. No spam.

© 2026 nosmai, inc · all rights reserved