Перейти к основному содержимому
Версия: 5.21.0

Подключение

Минимальные требования

  • minSdk 21 (Android 5.0) или выше; targetSdk и compileSdk 35 или новее.
  • Android Gradle Plugin 8.6.1 или новее, Gradle Wrapper 8.7 или совместимый.
  • Kotlin 1.9.10 или новее.
  • JDK 17 (рекомендуется Eclipse Temurin 17). jvmTarget, sourceCompatibility, targetCompatibility17.
  • Проект использует AndroidX (Jetpack).

Подключение SDK

  1. Добавьте Maven-репозиторий edna в settings.gradle (maven-pub.edna.ru — публичный, credentials не нужны):

    // settings.gradle
    dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
    google()
    mavenCentral()
    maven { url 'https://maven-pub.edna.ru/repository/maven-public/' }
    }
    }
    Legacy-проекты

    Если в проекте используется allprojects { repositories { ... } } в корневом build.gradle, добавьте maven { url '...' } туда. В новых проектах с FAIL_ON_PROJECT_REPOS этот способ не работает.

  2. Подключите зависимость:

    // 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 — содержит дополнительные инструменты диагностики и логирования, используйте для разработки. release — оптимизированный артефакт для production-сборок.

    Если в приложении есть build types кроме debug и release (например, staging), добавьте matchingFallbacks = ['release'] — иначе сборка упадёт с No matching variant. Подробнее: Troubleshooting.

Что SDK добавит в манифест

После подключения зависимости при сборке в финальный AndroidManifest.xml приложения автоматически попадут:

  • Permissions: INTERNET, ACCESS_NETWORK_STATE, CAMERA, RECORD_AUDIO, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE (до API 28), WAKE_LOCK, DOWNLOAD_WITHOUT_NOTIFICATION, FOREGROUND_SERVICE, POST_NOTIFICATIONS. CAMERA, RECORD_AUDIO, POST_NOTIFICATIONS — dangerous, SDK сам показывает диалоги в рантайме.
  • Activities: ChatActivity, ImagesActivity, PermissionsActivity.
  • FileProvider с authority ${applicationId}.edna.chatcenter.ui.fileprovider.
  • <queries> для Intent.ACTION_VIEW со схемой https (открытие ссылок на Android 11+).
  • Application-флаги: android:largeHeap="true", android:hardwareAccelerated="true", android:fullBackupContent="@xml/ecc_backup_rules".
largeHeap и fullBackupContent применяются ко всему приложению

SDK выставляет android:largeHeap="true" и android:fullBackupContent="@xml/ecc_backup_rules" на уровне <application>. Если такое значение в вашем приложении нежелательно или у вас уже есть собственные backup rules — переопределите в AndroidManifest.xml через tools:replace:

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

Обфускация

SDK поставляет consumer-proguard-правила автоматически через consumerProguardFiles своего AAR-артефакта — при minifyEnabled true R8/ProGuard применит их без вашего участия. Никаких ручных правил для базового подключения добавлять не нужно.

Если release-сборка падает с ClassNotFoundException или NoSuchMethodException, либо у вас включён R8 full mode (android.enableR8.fullMode=true) — см. Troubleshooting → Краши в release-сборке.

Связанные разделы