Подключение
Минимальные требования
minSdk21 (Android 5.0) или выше;targetSdkиcompileSdk35 или новее.- Android Gradle Plugin 8.6.1 или новее, Gradle Wrapper 8.7 или совместимый.
- Kotlin 1.9.10 или новее.
- JDK 17 (рекомендуется Eclipse Temurin 17).
jvmTarget,sourceCompatibility,targetCompatibility—17. - Проект использует AndroidX (Jetpack).
Подключение SDK
-
Добавьте 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этот способ не работает. -
Подключите зависимость:
// 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".
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-сборке.
Связанные разделы
- Быстрый старт — инициализация SDK и первое открытие чата.
- Инициализация SDK — конструктор
ChatCenterUI,init()иinitAsync(). - Уведомления — настройка push (FCM/HMS),
POST_NOTIFICATIONS. - Troubleshooting — типовые ошибки сборки и runtime-проблемы.