# Миграция на версию 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'
}