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"
}
}
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;