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)
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)
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
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.
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)
dependencies {
...
implementation("androidx.core:core:1.9.0")
implementation("androidx.appcompat:appcompat:1.4.2")
implementation("androidx.lifecycle:lifecycle-process:2.7.0")
}
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
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.
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.
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.
import com.moengage.react.MoEReactPackage;