Guide de migration du SDK Android Consumer 3.0
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Migrer vers Kotlin 2.0
Si vous utilisez le SDK Consumer pour Android 3.0 ou version ultérieure, vous devez passer à Kotlin 2.0. Cette page fournit des conseils pour faciliter la transition vers la nouvelle version de Kotlin.
Compatibilité avec Gradle et AGP
Kotlin 2.0 a des exigences concernant les versions minimale et maximale pour votre version de Gradle et du plug-in Android Gradle (AGP). Assurez-vous que votre projet répond à ces exigences pour Kotlin 2.0.
Version minimale d'AGP pour le SDK Consumer 3.0 et versions ultérieures
Le SDK Consumer 3.0 nécessite l'utilisation d'AGP 7.3 ou version ultérieure.
Mode R8 complet
Le SDK Consumer version 3 et les versions antérieures ne sont pas compatibles avec le mode R8 complet. Vous devez désactiver explicitement le mode R8 complet si votre application cible AGP 8.0 ou version ultérieure.
# settings.gradle
android.enableR8.fullMode=false
Compatibilité des versions de Kotlin
Kotlin est rétrocompatible avec les trois versions précédentes du langage.
Cela signifie que si vous utilisez déjà Kotlin 1.7 ou version ultérieure avec le SDK Consumer, vous devriez pouvoir passer à Kotlin 2.0 sans avoir à résoudre toutes les modifications incompatibles. Toutefois, la compatibilité Kotlin ne s'applique qu'aux fonctionnalités linguistiques stables.
Si vous utilisez des fonctionnalités alpha, bêta ou expérimentales dans le langage Kotlin, vous devrez peut-être apporter des modifications supplémentaires lors de la mise à niveau.
Indicateurs de compatibilité Kotlin
Comme indiqué dans la section précédente, Kotlin est compatible avec les trois versions précédentes du langage lors de la mise à niveau. Kotlin fournit deux indicateurs pour limiter les changements cassants :
language-version X.Y
Cet indicateur rétablit les modifications incompatibles avec le comportement d'une version Kotlin précédente.
Par exemple, si vous utilisez Kotlin 1.7, vous pouvez spécifier [ -
language-version 1.7]
. Les nouvelles modifications destructives ne prendront alors plus effet :
android {
kotlinOptions {
languageVersion = '1.7'
}
}
api-version X.Y
Cet indicateur empêche l'utilisation de nouvelles API avant que le code en aval dépendant ne soit prêt à intégrer Kotlin 2.0.
android {
kotlinOptions {
apiVersion = '1.7'
}
}
Une approche plus ciblée
En plus d'utiliser des indicateurs de compatibilité Kotlin, nous vous recommandons de consulter les notes de version de Kotlin et de choisir les comportements que vous souhaitez conserver à partir de la version à partir de laquelle vous effectuez la mise à niveau. Kotlin fournit une liste des changements cassants et des indicateurs qui peuvent être définis pour conserver le comportement d'origine dans ses guides de compatibilité pour chaque version :
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eUpgrading to Kotlin 2.0 is mandatory when utilizing the Consumer SDK for Android 3.0 or later.\u003c/p\u003e\n"],["\u003cp\u003eEnsure your Gradle and Android Gradle Plugin (AGP) versions meet the compatibility requirements for Kotlin 2.0, with Consumer SDK 3.0+ necessitating AGP 7.3 or higher.\u003c/p\u003e\n"],["\u003cp\u003eDisable Full R8 mode explicitly for Consumer SDK v3 and below when targeting AGP 8.0+.\u003c/p\u003e\n"],["\u003cp\u003eWhile Kotlin generally offers backward compatibility, potential breaking changes might require adjustments, especially when using alpha, beta, or experimental Kotlin features.\u003c/p\u003e\n"],["\u003cp\u003eLeverage Kotlin compatibility flags like \u003ccode\u003elanguage-version\u003c/code\u003e and \u003ccode\u003eapi-version\u003c/code\u003e or consult the Kotlin compatibility guides for managing specific breaking changes during the upgrade.\u003c/p\u003e\n"]]],["To migrate to Kotlin 2.0 with Consumer SDK 3.0+, ensure your Gradle and AGP versions meet Kotlin 2.0 requirements (AGP 7.3+). Disable Full R8 mode if using AGP 8.0+ by setting `android.enableR8.fullMode=false` in `settings.gradle`. Utilize Kotlin compatibility flags, `languageVersion` and `apiVersion`, to revert breaking changes or limit new API usage. Consult the Kotlin compatibility guides for specific version changes and behavior flags.\n"],null,["Migrate to Kotlin 2.0\n\nIf you are using the Consumer SDK for Android 3.0+ you must upgrade to Kotlin\n2.0. This page provides guidance to ease the transition to the new Kotlin\nversion.\n| **Note:** For information on upgrading to Kotlin 1.9, which was required for the Consumer SDK 5.0+ see the [Kotlin 1.9 upgrade\n| guide](/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/trip-order-progress/migrations/android_consumer_sdk_v2.0_migration#kotlin_16_to_19_migration).\n\nGradle and AGP compatibility\n\nKotlin 2.0 has [requirements for the minimum and maximum\nversions](https://kotlinlang.org/docs/gradle-configure-project.html#apply-the-plugin)\nfor your Gradle and Android Gradle Plugin (AGP) version. Ensure that your\nproject meets these requirements for Kotlin 2.0.\n\nAGP minimum version for the Consumer SDK 3.0+\n\nConsumer SDK 3.0 requires using AGP 7.3+.\n\nFull R8 mode\n\nConsumer SDK v3 and below does not support Full R8 mode. You must explicitly\ndisable Full R8 mode if your application targets AGP 8.0+. \n\n # settings.gradle\n android.enableR8.fullMode=false\n\nKotlin version compatibility\n\nKotlin supports backwards compatibility with [three previous language\nversions](https://kotlinlang.org/docs/kotlin-evolution-principles.html#compatibility-options).\nThis means that if you are already using Kotlin 1.7+ with the Consumer SDK, you\nshould be able to upgrade to Kotlin 2.0 without having to resolve all of the\nbreaking changes. However, [Kotlin compatibility only applies to stable language\nfeatures](https://kotlinlang.org/docs/components-stability.html#stability-levels-explained).\nIf you are using alpha, beta or experimental features in the Kotlin language,\nthen you may have to make additional changes when upgrading.\n\nKotlin compatibility flags\n\nAs noted in the previous section, Kotlin supports up to 3 previous versions of\nthe language when upgrading. Kotlin [supplies two flags to help with limiting\nbreaking changes](https://kotlinlang.org/docs/compatibility-modes.html):\n\nlanguage-version X.Y\n\nThis flag reverts breaking changes to the behavior of a previous Kotlin version.\nFor example, if you are using Kotlin 1.7, you could specify `[ -\nlanguage-version 1.7]` and the new breaking changes would no longer take effect: \n\n android {\n kotlinOptions {\n languageVersion = '1.7'\n }\n }\n\napi-version X.Y\n\nThis flag prevents new APIs from being used before dependent downstream code is\nready to incorporate Kotlin 2.0. \n\n android {\n kotlinOptions {\n apiVersion = '1.7'\n }\n }\n\nA more targeted approach\n\nIn addition to using Kotlin compatibility flags, we recommend reviewing the\nKotlin release notes and choosing the behaviors that you would like to retain\nfrom the version that you are upgrading from. Kotlin provides a list of breaking\nchanges and the flags that can be set to retain the original behavior in its\ncompatibility guides for each version:\n\n- [1.8 compatibility guide](https://kotlinlang.org/docs/compatibility-guide-18.html)\n- [1.9 compatibility guide](https://kotlinlang.org/docs/compatibility-guide-19.html)\n- [2.0 compatibility guide](https://kotlinlang.org/docs/compatibility-guide-20.html)"]]