# Android Installation

To integrate SnapOdds SDK into your Android project, open your Android project in Android Studio. (See <https://reactnative.dev/docs/native-modules-android> for details)

## Github Packages

### Create a Personal Access Token on Github

Inside your GitHub Account:

1. Go to **Settings -> Developer Settings -> Personal Access Tokens -> Generate new token**
2. Make sure to select the scope **read:packages** and Generate a token
3. After the token is generated, be sure to copy your new personal access token. It will not be accessible again. If the key is lost, the only option is to generate a new key.

### Configure your Github Personal Access Token

To configure your token, a **github.properties** file containing your **Github User ID** and **Personal Access Token** must be placed in your project's root directory as shown below:

```
gpr.user=GITHUB_USERID
gpr.key=PERSONAL_ACCESS_TOKEN
```

Alternatively, you can set the environment variables `GPR_USER` and `GPR_API_KEY`.

### Add Github Packages Repository to Application Module's build.gradle

Next, define the Github Packages as a repository in the application module's build.gradle by adding the following section:

```
def githubProperties = new Properties() githubProperties.load(new FileInputStream(rootProject.file("github.properties")))
repositories {
    maven {
        name = "GitHubPackages"
        url = uri("https://maven.pkg.github.com/snapodds/sdk-android")
        
        credentials {        
            /** Create github.properties in root project folder file with     
            ** gpr.usr=GITHUB_USER_ID & gpr.key=PERSONAL_ACCESS_TOKEN 
            ** Or set env variable GPR_USER & GPR_API_KEY if not adding a properties file**/
            username = githubProperties['gpr.usr'] ?: System.getenv("GPR_USER")
            password = githubProperties['gpr.key'] ?: System.getenv("GPR_API_KEY")
        }

        metadataSources {
            mavenPom()
            google()
            mavenCentral()
            artifact()
        }
    }
}
```

### Add Dependency to Snapscreen SDK in Application Module's build.gradle

```
dependencies {
    //consume library
    implementation 'com.snapscreen.mobile:sdk-android:latest-release'
}
```

### Add React Native SDK Module

Add the files SnapscreenSDKModule.java and SnapscreenSDKPackage.java from our [provided sample project here on Github](https://github.com/snapodds/sdk-react-native-sample) to your Android project and be sure to change the package of both files according to your own project.

Additionally in your Android project's application subclass (most likely MainApplication.java) add the new Native Module Package in the method `getPackages`

```
packages.add(new SnapscreenSDKPackage());
```


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.snapodds.com/docs/mobile-sdk/react-native/android-installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
