Skip to main content
Faster Integration with UI KitsIf you’re using CometChat UI Kits, voice and video calling can be quickly integrated:
  • Incoming & outgoing call screens
  • Call buttons with one-tap calling
  • Call logs with history
👉 Android UI Kit Calling IntegrationUse this Calls SDK directly only if you need custom call UI or advanced control.
This guide walks you through installing the CometChat Calls SDK and initializing it in your Android application.

Add the CometChat Dependency

Step 1: Add Repository

Add the CometChat repository URL to your project level build.gradle file in the repositories block:

Step 2: Add Dependencies

Add the Calls SDK dependency to your app level build.gradle file:
Set minSdkVersion to 26 or higher. The Calls SDK’s transitive dependencies declare minSdk 26, so a lower value fails the build at the manifest merger: uses-sdk:minSdkVersion 24 cannot be smaller than version 26 declared in library [...react-native-svg...].

Step 3: Configure Java Version

Add Java 8 compatibility to the android section of your app level build.gradle:

Step 4: Initialize the Native Loader

Required. The Calls SDK renders its call surface through an embedded React Native runtime. React Native 0.76+ ships a single merged native library and resolves the individual library names through OpenSourceMergedSoMapping, which must be registered with SoLoader before the first call surface is created. Do it once, in your Application.onCreate():
Register the class in your AndroidManifest.xml:
Skipping this step does not fail the build - it crashes the app the first time a user joins a call: java.lang.UnsatisfiedLinkError: dlopen failed: library "libhermes_executor.so" not found (the exact library name varies by device). Verified on two emulators, API 36 and API 37.
Why this step exists. The SDK already performs this initialization internally, but only on the legacy startSession() path - it was not carried over to either joinSession() overload, which is the v5 API this guide uses. Until a future 5.0.x moves it, the app has to do it. Integrations still on startSession(), and some UI Kit setups, will not see the crash for that reason - do not rely on it, since the recommended v5 flow does not take that path.

Add Permissions

Add the required permissions to your AndroidManifest.xml:
For Android 6.0 (API level 23) and above, you must request camera and microphone permissions at runtime before starting a call.

Initialize CometChat Calls

The init() method initializes the SDK with your app credentials. Call this method once when your application starts, typically in your Application class or main Activity.

CallAppSettings

The CallAppSettings class configures the SDK initialization:

Check Initialization Status

You can verify if the SDK has been initialized using the isInitialized() method: