# Миграция на версию 2.0 и выше в Android SDK
При миграции на версию 2.0 и выше в Android SDK некоторые начали сталкиваться с проблемами. Эта памятка может помочь с переходом в большинстве случаев.
# Изменения в новых версиях
В старых версиях SDK предполагалось, что пользователь будет использовать внешние зависимости. Пример структуры выглядел так:
// 1. Add to dependencies:
dependencies {
implementation 'com.rees46:rees46-sdk:+'
implementation 'com.google.firebase:firebase-bom:32.7.0'
implementation 'com.google.firebase:firebase-messaging:23.4.1'
implementation 'com.google.dagger:dagger:2.51.1'
kapt 'com.google.dagger:dagger-compiler:2.48'
}
// Add to plugins:
plugins {
id 'kotlin-kapt'
}
В новых версиях SDK часть зависимостей поставляется в скомпилированном виде, что позволило упростить интеграцию.
// 1. Add to dependencies:
dependencies {
implementation 'com.rees46:rees46-sdk:+'
}
# Суть проблемы
При использовании новой интеграции, у части пользователей возникли проблемы. В частности, у тех, кто использует Dagger для внедрения зависимостей.
Приложение, использующее Dagger, не сможет корректно работать, если в проекте нет зависимостей dagger-compiler и kapt. Будут возникать ошибки.
# Что делать
Для того, чтобы избежать ошибок, вызванных нарушениями работы Dagger, необходимо сохранять эти зависимости в файле gradle.
Пример правильной структуры:
plugins {
id 'kotlin-kapt'
}
dependencies {
implementation 'com.rees46:rees46-sdk:+'
implementation 'com.google.dagger:dagger:DAGGER_VERSION'
kapt 'com.google.dagger:dagger-compiler:DAGGER_COMPILER_VERSION'
}