Guía de migración al SDK de consumidor de Android 3.0

Cómo migrar a Kotlin 2.0

Si usas el SDK para consumidores de Android 3.0 o versiones posteriores, debes actualizar a Kotlin 2.0. En esta página, se proporciona orientación para facilitar la transición a la nueva versión de Kotlin.

Compatibilidad de Gradle y AGP

Kotlin 2.0 tiene requisitos para las versiones mínimas y máximas de Gradle y el complemento de Android para Gradle (AGP). Asegúrate de que tu proyecto cumpla con estos requisitos para Kotlin 2.0.

Versión mínima de AGP para el SDK para consumidores 3.0 y versiones posteriores

El SDK para consumidores 3.0 requiere el uso de AGP 7.3 o versiones posteriores.

Modo R8 completo

El SDK para consumidores v3 y versiones anteriores no son compatibles con el modo R8 completo. Debes inhabilitar de forma explícita el modo R8 completo si tu aplicación está orientada a AGP 8.0 o versiones posteriores.

# settings.gradle
android.enableR8.fullMode=false

Compatibilidad con versiones de Kotlin

Kotlin admite la retrocompatibilidad con tres versiones anteriores del lenguaje. Esto significa que, si ya usas Kotlin 1.7 o versiones posteriores con el SDK para consumidores, deberías poder actualizar a Kotlin 2.0 sin tener que resolver todos los cambios drásticos. Sin embargo, la compatibilidad con Kotlin solo se aplica a las funciones de lenguaje estables. Si usas funciones alfa, beta o experimentales en el lenguaje Kotlin, es posible que debas realizar cambios adicionales cuando realices la actualización.

Marcas de compatibilidad de Kotlin

Como se señaló en la sección anterior, Kotlin admite hasta 3 versiones anteriores del lenguaje cuando se actualiza. Kotlin proporciona dos marcas para ayudar a limitar los cambios rotundos:

language-version X.Y

Esta marca revierte los cambios que generan errores en el comportamiento de una versión anterior de Kotlin. Por ejemplo, si usas Kotlin 1.7, puedes especificar [ - language-version 1.7] y los nuevos cambios drásticos ya no tendrán efecto:

android {
   kotlinOptions {
       languageVersion = '1.7'
   }
}
api-version X.Y

Esta marca evita que se usen APIs nuevas antes de que el código descendente dependiente esté listo para incorporar Kotlin 2.0.

android {
   kotlinOptions {
       apiVersion = '1.7'
   }
}

Un enfoque más segmentado

Además de usar las marcas de compatibilidad de Kotlin, te recomendamos que revises las notas de la versión de Kotlin y elijas los comportamientos que deseas conservar de la versión desde la que realizas la actualización. Kotlin proporciona una lista de cambios catastróficos y las marcas que se pueden establecer para retener el comportamiento original en sus guías de compatibilidad para cada versión: