Миграция для Android Consumer SDK v2.0.0

Обновления Gradle и плагина Android Gradle

Обновите версии Gradle и плагина Android Gradle.

Для начала обновите версии Gradle и Android Gradle Plugin. Это обновление включает улучшенную совместимость с некоторыми зависимостями SDK (включая Kotlin 1.9), а также исправления ряда критически важных ошибок.

Для этого основного релиза SDK вашему проекту Android-приложения требуются следующие зависимости следующих версий:

  • Версия Gradle должна быть не ниже v7.5.0, но не выше v7.6.0.
  • Версия плагина Android Gradle (AGP) в диапазоне v7.4.x.

Вы можете выбрать более новую версию плагинов; однако при этом могут появиться предупреждения об устаревании функций, или некоторые новые возможности могут не работать.

Чтобы изменить версию Gradle, отредактируйте строку в файле /gradle/wrapper/gradle-wrapper.properties вашего проекта.

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip

Чтобы изменить версию плагина Android Gradle, отредактируйте файл build.gradle , содержащий блок buildscript . Например:

buildscript {
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.1'
    }
}

Поддержка миграции библиотек с Java 7 на Java 8

Шаг 1 — Включите поддержку библиотек Java 8.

Источник

Поскольку минимальный уровень API SDK равен 23, а требуемая версия AGP — 7.4+, конфигурация немного отличается от описанной в исходной документации.

buildscript {

    repositories {
        google()
        mavenCentral()
        jcenter()
        maven {
            url = uri("https://storage.googleapis.com/r8-releases/raw")
        }
    }
    dependencies {
        classpath 'com.android.tools:r8:8.0.46'
        classpath 'com.android.tools.build:gradle:7.4.1'
    }
}

android {
    compileOptions {
        // Flag to enable support for the new language APIs
        coreLibraryDesugaringEnabled true
        // Sets Java compatibility to Java 8
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.3'
}

Шаг 2 — Переход с Proguard или Dexguard на R8

R8, источник

В AGP v7.4+ в качестве инструмента по умолчанию для сжатия, обфускации и оптимизации бинарного файла используется R8, поэтому никаких специальных действий на данном этапе не требуется.

При миграции проекта с AGP 4.0+ AGP может выдать следующие предупреждения об удалении файлов:

  • Использование параметра useProguard true в файле build.gradle
  • Использование параметра android.enableR8=false в файле gradle.properties

Удаление этих строк обычно решает указанные проблемы.

миграция с Kotlin 1.6 на 1.9

Шаг 1 — Переход на плагин Kotlin Gradle версии 1.9.0

Источник

Обновите версию плагина Kotlin Gradle в файле build.gradle вашего модуля верхнего уровня. Убедитесь, что в зависимости из блока buildscript добавлено свойство org.jetbrains.kotlin:kotlin-gradle-plugin .

buildscript {
  dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
  }
}

Если вы используете Kotlin Gradle Plugin 1.6.X или 1.7.X, вам необходимо перевести ваше приложение с Kotlin-synthetics. Для получения дополнительной информации обратитесь к официальному руководству по миграции .

Шаг 2 — Обновите kotlin-stdlib до версии 1.9.0

Источник

Обновите kotlin-stblib до версии 1.9.0 в файле build.gradle вашего приложения.

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
}

Обязательно удалите все ссылки на kotlin-stdlib-jdk7 или kotlin-stdlib-jdk8 . Обе зависимости были объединены в kotlin-stdlib начиная с Kotlin 1.8.0 .