> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/nfc-wallet-sdk-android/get-started/configuration/1.-binary-integration.md).

# 1. Binary integration

## Integrate the NFC Wallet SDK for Android

Use this guide to add NFC Wallet SDK libraries to your Android **digital wallet application**.

### Supported configurations

Latest NFC Wallet SDK for Android supports the following configurations for this integration:

* **Android version:** 8.1 to 16.0
* **CPU architecture (ABI):** `armeabi-v7a`, `arm64-v8a`

{% hint style="info" %}
Supported Android versions are SDK-release specific. For the latest compatibility status, see [Mobile OS compatibility](/nfc-wallet-sdk-android/general/mobile-os-compatibility.md).
{% endhint %}

### Copy the AAR files

Get the SDK AAR files from [Deliverables](/nfc-wallet-sdk-android/general/deliverables.md).

Copy them into a dedicated folder in your project. For example:

```
./dependencies
 ├── TSHPaySDK-dev-[version].[qualifier].aar
 └── TSHPaySDK-release-[version].[qualifier].aar
```

{% hint style="info" %}
NFC Wallet SDK was previously named **TSH Pay SDK**.

Some deliveries still use `TSHPaySDK-...` as the AAR filename prefix.
{% endhint %}

### Configure repositories

Add the folder as a local Maven repository using `flatDir`.

{% tabs %}
{% tab title="Groovy (settings.gradle)" %}
{% code title="settings.gradle" %}

```groovy
dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://developer.huawei.com/repo/' }
        flatDir { dirs "$rootDir/dependencies" }
    }
}
```

{% endcode %}
{% endtab %}

{% tab title="Groovy (root build.gradle)" %}
{% code title="build.gradle" %}

```groovy
allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://developer.huawei.com/repo/' }
        flatDir { dirs "${rootProject.projectDir}/dependencies" }
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

### Enable ABI splits

Enable ABI splits to reduce APK size (one APK per ABI). See [Build multiple APKs](/nfc-wallet-sdk-android/get-started/configuration/1.-binary-integration/build-multiple-apks.md).

### Add dependencies

Declare in depencies:

* NFC Wallet AARs
* required external libraries dependencies:
  * JNA ([Java Native Access](https://github.com/java-native-access/jna/tree/5.17.0))

{% code title="app/build.gradle" expandable="true" %}

```groovy
def nfcWalletSdkVersion = "[version].[qualifier]"

dependencies {
    // NFC Wallet SDK (AAR filenames can still start with "TSHPaySDK")
    debugImplementation(name: "TSHPaySDK-dev-${nfcWalletSdkVersion}", ext: "aar")
    releaseImplementation(name: "TSHPaySDK-release-${nfcWalletSdkVersion}", ext: "aar")

    // SDK Dependency
    // JNA
    implementation(libs.jna) { artifact { type = 'aar' } }
    
    // FCM - Google push notifications
    implementation platform(libs.firebase.bom)
    implementation libs.firebase.messaging
    implementation libs.firebase.analytics

    // Multi-dex application to prevent any size issue.
    implementation libs.multidex
}
```

{% endcode %}

{% hint style="warning" %}
JNA 5.17.0 or later is required to support devices using 16 KB memory pages.
{% endhint %}

{% hint style="info" %}
If you use push notifications (FCM or HMS Push Kit), add the required dependencies. See [Configure push provider](/nfc-wallet-sdk-android/get-started/configuration/5.-push-notifications/configure-push-provider.md).
{% endhint %}

### Verify the build

The project should be now ready to be synced and compiled.

1. Sync Gradle.
2. Build the `dev` variant.

{% hint style="info" %}
You must comply with Google Play target API level requirements for new or updated digital wallet application releases. See [Meet Google Play's target API level requirement](https://developer.android.com/google/play/requirements/target-sdk).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.payments.thalescloud.io/nfc-wallet-sdk-android/get-started/configuration/1.-binary-integration.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
