Skip to main content
Version: 5.21.0

Installation

Minimum requirements

  • minSdk 21 (Android 5.0) or higher; targetSdk and compileSdk 35 or newer.
  • Android Gradle Plugin 8.6.1 or newer, Gradle Wrapper 8.7 or compatible.
  • Kotlin 1.9.10 or newer.
  • JDK 17 (Eclipse Temurin 17 recommended). jvmTarget, sourceCompatibility, targetCompatibility17.
  • The project uses AndroidX (Jetpack).

Adding the SDK

  1. Add the edna Maven repository to settings.gradle (maven-pub.edna.io is public, no credentials needed):

    // settings.gradle
    dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
    google()
    mavenCentral()
    maven { url 'https://maven-pub.edna.io/repository/maven-public/' }
    }
    }
    Legacy projects

    If your project uses allprojects { repositories { ... } } in the root build.gradle, add maven { url '...' } there. In new projects with FAIL_ON_PROJECT_REPOS, that approach does not work.

  2. Add the dependency:

    // app module build.gradle
    def edna_chatcenter_version = "5.21.0"

    dependencies {
    releaseImplementation "edna.chatcenter.ui.android:release:$edna_chatcenter_version"
    debugImplementation "edna.chatcenter.ui.android:debug:$edna_chatcenter_version"
    }

    debug — contains additional diagnostics and logging tools; use for development. release — an optimized artifact for production builds.

    If your app has build types other than debug and release (e.g., staging), add matchingFallbacks = ['release'] — otherwise the build will fail with No matching variant. Details: Troubleshooting.

What the SDK adds to the manifest

After the dependency is added, during the build the following are automatically merged into the final AndroidManifest.xml of the app:

  • Permissions: INTERNET, ACCESS_NETWORK_STATE, CAMERA, RECORD_AUDIO, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE (up to API 28), WAKE_LOCK, DOWNLOAD_WITHOUT_NOTIFICATION, FOREGROUND_SERVICE, POST_NOTIFICATIONS. CAMERA, RECORD_AUDIO, POST_NOTIFICATIONS are dangerous; the SDK shows runtime dialogs itself.
  • Activities: ChatActivity, ImagesActivity, PermissionsActivity.
  • FileProvider with authority ${applicationId}.edna.chatcenter.ui.fileprovider.
  • <queries> for Intent.ACTION_VIEW with the https scheme (opening links on Android 11+).
  • Application flags: android:largeHeap="true", android:hardwareAccelerated="true", android:fullBackupContent="@xml/ecc_backup_rules".
largeHeap and fullBackupContent apply to the entire app

The SDK sets android:largeHeap="true" and android:fullBackupContent="@xml/ecc_backup_rules" at the <application> level. If this is not desirable in your app, or you already have your own backup rules, override them in AndroidManifest.xml via tools:replace:

<application
tools:replace="android:largeHeap,android:fullBackupContent"
android:largeHeap="false"
android:fullBackupContent="@xml/my_backup_rules">

Obfuscation

The SDK ships consumer-proguard rules automatically through consumerProguardFiles of its AAR artifact — with minifyEnabled true, R8/ProGuard applies them without your involvement. No manual rules are needed for a basic integration.

If a release build crashes with ClassNotFoundException or NoSuchMethodException, or you have R8 full mode enabled (android.enableR8.fullMode=true), see Troubleshooting → Crashes in release builds.