Migración para el SDK de consumidor de Android v2.0.0

Actualizaciones de Gradle y del complemento de Android para Gradle

Actualiza las versiones de Gradle y del complemento de Android para Gradle

Primero, actualiza las versiones de Gradle y del complemento de Android para Gradle. Esta actualización incluye una mejor compatibilidad con ciertas dependencias del SDK (incluido Kotlin 1.9), así como algunas correcciones de errores críticos.

Esta versión principal del SDK requiere las siguientes dependencias de versión para tu proyecto de aplicación para Android:

  • una versión de Gradle que sea, como mínimo, la v7.5.0, pero no superior a la v7.6.0
  • Una versión del complemento de Android para Gradle (AGP) en el rango de la versión 7.4.x

Puedes segmentar para una versión más reciente de los complementos; sin embargo, es posible que recibas advertencias de baja o que algunas funciones nuevas no funcionen.

Para modificar la versión de Gradle, modifica la línea en el archivo /gradle/wrapper/gradle-wrapper.properties de tu proyecto.

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

Para modificar la versión del complemento de Android para Gradle, modifica el archivo build.gradle que contiene el bloque buildscript. Por ejemplo:

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

Migración de la compatibilidad con bibliotecas de Java 7 a Java 8

Paso 1: Habilita la compatibilidad con la biblioteca de Java 8

Fuente

Dado que el nivel de API mínimo del SDK es 23 y la versión de AGP requerida es 7.4 o posterior, la configuración es un poco diferente de la documentación de origen mencionada.

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'
}

Paso 2: Migra de Proguard o Dexguard a R8

R8, fuente

El AGP v7.4 y versiones posteriores usan R8 como la herramienta predeterminada de reducción, ofuscación y optimización para el objeto binario, por lo que no se necesita ninguna acción especial en este punto.

Si el proyecto se migra desde AGP 4.0 o una versión posterior, es posible que AGP emita las siguientes advertencias sobre las eliminaciones de archivos:

  • Uso de useProguard true en el archivo build.gradle
  • Uso de android.enableR8=false en el archivo gradle.properties

Por lo general, quitar estas líneas resuelve esos problemas.

Migración de Kotlin 1.6 a 1.9

Paso 1: Migra al complemento de Kotlin para Gradle 1.9.0

Fuente

Actualiza la versión del complemento de Kotlin para Gradle en el archivo build.gradle del módulo de nivel superior de tu aplicación. Asegúrate de agregar org.jetbrains.kotlin:kotlin-gradle-plugin en las dependencias del bloque buildscript en caso de que falte.

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

Debes migrar tu aplicación de Kotlin-synthetics en caso de que provengas del complemento de Gradle para Kotlin 1.6.X o 1.7.X. Consulta la guía de migración oficial para obtener más información.

Paso 2: Actualiza kotlin-stdlib a la versión 1.9.0

Fuente

Actualiza kotlin-stblib a la versión 1.9.0 en el archivo build.gradle de tu aplicación.

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

Asegúrate de quitar cualquier referencia a kotlin-stdlib-jdk7 o kotlin-stdlib-jdk8. Ambas dependencias se consolidaron en kotlin-stdlib a partir de Kotlin 1.8.0.