> ## Documentation Index
> Fetch the complete documentation index at: https://docs.idmetagroup.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Android setup

> Minimum versions, Gradle settings, and permissions for the IDmeta Mobile SDK on Android.

Complete this setup after you add [`idmeta_flutter`](https://pub.dev/packages/idmeta_flutter). Then launch the flow with `startVerification` on [Mobile SDK](https://docs.idmetagroup.com/developer-tools/mobile-sdk).

## Requirements

* Android 7.0 (API 24) or later
* `compileSdk` 37, or `maxOf(flutter.compileSdkVersion, 37)`
* Java / Kotlin JVM target 17
* Flutter 3.44.1 or later
* A macOS or Windows build machine (Linux isn't supported yet)

## Gradle

In `android/app/build.gradle.kts`:

```kotlin theme={null}
android {
    compileSdk = maxOf(flutter.compileSdkVersion, 37)

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

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_17.toString()
    }

    defaultConfig {
        minSdk = maxOf(flutter.minSdkVersion, 24)
    }
}
```

If the file is Groovy `build.gradle`, use `Math.max(...)` instead of `maxOf`.

## Permissions

Add these to `android/app/src/main/AndroidManifest.xml`. `INTERNET` is always required. `CAMERA` is required for document and biometric capture. Add location and `READ_MEDIA_IMAGES` only if those steps are in the Trust Flow.

```xml theme={null}
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
```

## Troubleshooting

* **`flutter pub get` fails on a Linux machine or Linux CI runner** — not supported yet. Build on macOS or Windows.
* **compileSdk below 37** — the plugin may fail to build.
* **minSdk below 24** — manifest merge conflict with `idmeta_flutter`.
* **Missing INTERNET** — network errors during the flow.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.