Migration pour le SDK client Android v2.0.0

Mises à jour de Gradle et des plug-ins Android Gradle

Mettre à jour Gradle et le plug-in Android Gradle

Commencez par mettre à niveau les versions de Gradle et des plug-ins Android Gradle. Cette mise à niveau inclut une meilleure compatibilité avec certaines dépendances du SDK (y compris Kotlin 1.9), ainsi que certaines corrections de bugs critiques.

Cette version majeure du SDK nécessite les dépendances de version suivantes pour votre projet d'application Android:

  • une version de Gradle comprise entre la version 7.5.0 et la version 7.6.0.
  • Une version du plug-in Android Gradle (AGP) de type v7.4.x.

Vous pouvez cibler une version supérieure des plug-ins. Toutefois, vous risquez de recevoir des avertissements d'abandon ou certaines nouvelles fonctionnalités risquent de ne pas fonctionner.

Pour modifier la version de Gradle, modifiez la ligne dans le fichier /gradle/wrapper/gradle-wrapper.properties de votre projet

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

Pour modifier la version du plug-in Android Gradle, modifiez le fichier build.gradle qui contient le bloc buildscript. Exemple :

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

Migration de la compatibilité des bibliothèques Java 7 vers Java 8

Étape 1 : Activez la compatibilité avec les bibliothèques Java 8

Source

Étant donné que le niveau d'API minimal du SDK est 23 et que la version d'AGP requise est 7.4 ou une version ultérieure, la configuration est légèrement différente de celle de la documentation source mentionnée.

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

Étape 2 : Passez de ProGuard ou Dexguard à R8

R8, source

L'AGP version 7.4 ou ultérieure utilise R8 comme outil de minification, d'obscurcissement et d'optimisation par défaut pour le binaire. Aucune action spéciale n'est donc requise à ce stade.

Si le projet est migré à partir de la version 4.0 de l'AGP, AGP peut émettre les avertissements suivants concernant la suppression de fichiers:

  • Utilisation de useProguard true dans le fichier build.gradle
  • Utilisation de android.enableR8=false dans le fichier gradle.properties

Supprimer ces lignes permet généralement de résoudre ces problèmes.

Migration de Kotlin 1.6 vers 1.9

Étape 1 : Migrez vers le plug-in Kotlin Gradle 1.9.0

Source

Mettez à jour la version du plug-in Kotlin Gradle dans le fichier build.gradle du module de premier niveau de votre application. Veillez à ajouter org.jetbrains.kotlin:kotlin-gradle-plugin dans les dépendances du bloc buildscript au cas où il serait manquant.

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

Si vous utilisez le plug-in Kotlin Gradle 1.6.X ou 1.7.X, vous devez migrer votre application depuis Kotlin-Synthetics. Pour en savoir plus, consultez le guide de migration officiel.

Étape 2 : Mettez à niveau kotlin-stdlib vers la version 1.9.0

Source

Mettez à niveau kotlin-stblib vers la version 1.9.0 dans le fichier build.gradle de votre application.

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

Veillez à supprimer toutes les références à kotlin-stdlib-jdk7 ou kotlin-stdlib-jdk8. Les deux dépendances ont été consolidées dans kotlin-stdlib à partir de Kotlin 1.8.0.