Android

Configuring Build Settings

Add Maven Repository

Add mavenCentral() repository in the project-level build.gradle file. If not present already.

Path - android/build.gradle(.kts)

Groovy
buildscript {
    repositories {
        mavenCentral()
    }
}
allprojects {
    repositories {
        mavenCentral()
    }
}

Enable Java 8

The SDK target and source compatible with version 8 of the Java Programming Language. Enable Java 8 in the application build.gradle if not done already. 

Path - android/app/build.gradle(.kts)

build.gradlebuild.gradle.kts
android {
  ...
  compileOptions {
     sourceCompatibility JavaVersion.VERSION_1_8
     targetCompatibility JavaVersion.VERSION_1_8
  }
  kotlinOptions {
     jvmTarget = '1.8'
  }
}

Adding MoEngage Dependency

Add the following dependency in the android/app/build.gradle(.kts) file.

build.gradle
dependencies {
    ...
  implementation("com.moengage:moe-android-sdk:$sdkVersion")
}

replace $sdkVersion with the appropriate SDK version

For more information about the build config and other libraries used by the MoEngage Android SDK, refer to the SDK Configuration.

Add Androidx Libraries

The SDK depends on a few Androidx libraries for its functioning, add the below Androidx libraries in your application's build.gradle file in the dependencies block if not done already.

Path - android/app/build.gradle(.kts)

Groovy

    dependencies {
    ...
      implementation("androidx.core:core:1.9.0")
      implementation("androidx.appcompat:appcompat:1.4.2")
      implementation("androidx.lifecycle:lifecycle-process:2.5.1")
    }
    

The MoEngage SDK depends on the lifecycle-process library for a few key features to work and the latest version of lifecycle-process depends on the androidx.startup:startup-runtime library. Hence do not remove the InitializationProvider component from the manifest. When adding other Initializers using the startup-runtime make sure the Initializer for lifecycle-process library is also added. Refer to the documentation to know how to add the Initializer.

Configuration Required For Older React Version (Optional)

info

Note

This step is required only if react-native auto-linking is not working.

Adding MoEngage Dependency

In android/settings.gradle(.kts) add the following

Groovy
include ':react-native-moengage'
project(':react-native-moengage').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-moengage/android')

Add the following dependency in the android/app/build.gradle(.kts) file.

build.gradle
dependencies {
    ...
  implementation project(":react-native-moengage")
}

Add MoEngage Package

Add the MoEngage React Package to the Application class's getPackages().

Path - android/app/src/main/java/<package-name>/MainApplication.java 

Note: Your Application class name might vary, go to your application class.

Java
public class MainApplication extends Application implements ReactApplication {
  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    protected boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }
    @Override
    protected List<ReactPackage> getPackages() {
      @SuppressWarnings("UnnecessaryLocalVariable")
      List<ReactPackage> packages = new PackageList(this).getPackages();
      // add moengage package
      packages.add(new MoEReactPackage());
      return packages;
}
  };
}

In case you are facing issues with the import add the below import statement to your java file.

Java

    import com.moengage.react.MoEReactPackage;
Was this article helpful?
0 out of 3 found this helpful

How can we improve this article?