La malédiction de minCompileSdk (31) : comment vaincre l'erreur AAR en Kotlin

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : Votre projet ne se compile pas ? Vous n'êtes pas seul

\n\n

Imaginez : vous codez en Kotlin, tout se passe bien, mais soudain — boum ! — la compilation échoue avec un message mystérieux : The minCompileSdk (31) specified in a dependency's AAR metadata. Une douleur familière ? Cette erreur est l'un des « pièges » les plus courants sur Stack Overflow (des milliers de vues et des centaines de commentaires). Elle survient lorsque vous utilisez une bibliothèque qui nécessite une version plus récente de compileSdk que celle configurée dans votre projet.

\n\n

Dans cet article, nous allons voir comment corriger l'erreur minCompileSdk (31) dans les métadonnées AAR pour les projets Kotlin et Java. Vous découvrirez les causes, obtiendrez des solutions prêtes à l'emploi et comprendrez comment éviter ce problème à l'avenir. C'est parti !

\n\n

Qu'est-ce que minCompileSdk et pourquoi casse-t-il la compilation ?

\n\n

Commençons par la théorie. Chaque projet Android a son propre compileSdk — la version du SDK Android avec laquelle il est compilé. Les bibliothèques (AAR) peuvent également spécifier un compileSdk minimum dont elles ont besoin. Si votre version est inférieure, Gradle génère une erreur. C'est une protection contre l'incompatibilité : la bibliothèque peut utiliser des API qui n'existent pas dans les anciens SDK.

\n\n

L'erreur The minCompileSdk (31) specified in a dependency's AAR metadata dit littéralement : « Hé, cette bibliothèque nécessite une compilation avec le SDK 31 (Android 12) ou supérieur, alors que le tien est inférieur ! ».

\n\n

Scénarios typiques d'apparition

\n
    \n
  • Vous avez ajouté une nouvelle bibliothèque (par exemple, androidx.compose ou Firebase) qui a été mise à jour pour exiger le SDK 31+.
  • \n
  • Vous utilisez un ancien modèle de projet avec compileSdk = 30.
  • \n
  • Vous avez oublié de mettre à jour Gradle et les SDK Tools.
  • \n
\n\n

Comment corriger l'erreur minCompileSdk (31) dans AAR : 3 méthodes éprouvées

\n\n

Voici des solutions étape par étape pour Kotlin et Java. Notez que le code est en Kotlin (DSL), mais la logique est la même pour Groovy.

\n\n

Méthode 1 : Augmenter compileSdk (recommandée)

\n

La voie la plus correcte est de mettre à jour compileSdk vers la version requise par la bibliothèque. Généralement, c'est 31 (Android 12) ou 33 (Android 13).

\n\n

Étapes :

\n
    \n
  1. Ouvrez le fichier build.gradle.kts (niveau du module app).
  2. \n
  3. Trouvez la section android.
  4. \n
  5. Modifiez compileSdk avec la valeur requise.
  6. \n
\n\n
android {\n    compileSdk = 33 // Ou 31, 32 — selon les exigences\n\n    defaultConfig {\n        minSdk = 21\n        targetSdk = 33\n        // ...\n    }\n}\n
\n\n

Pourquoi cela fonctionne-t-il ? Vous vous conformez simplement aux exigences de la dépendance. Si la bibliothèque demande le SDK 31, donnez-lui le SDK 31. N'oubliez pas d'installer également le SDK correspondant dans Android Studio (SDK Manager → Android 12.0 (API 31)).

\n\n

Méthode 2 : Abaisser la version de la bibliothèque

\n

Si vous ne souhaitez pas augmenter compileSdk (par exemple, pour des raisons de compatibilité avec d'anciens appareils), vous pouvez revenir à une version de la bibliothèque qui ne nécessite pas le SDK 31.

\n\n

Exemple : Au lieu de implementation("androidx.compose:compose-bom:2023.10.01"), utilisez une version plus ancienne, par exemple 2022.10.00.

\n\n
dependencies {\n    // Avant (provoque l'erreur)\n    // implementation("androidx.compose:compose-bom:2023.10.01")\n\n    // Après (version stable sans exigence du SDK 31+)\n    implementation("androidx.compose:compose-bom:2022.10.00")\n}\n
\n\n

C'est une solution temporaire, mais elle aide si vous êtes bloqué sur un ancien SDK. Le principal inconvénient est que vous perdez les nouvelles fonctionnalités et les correctifs de sécurité.

\n\n

Méthode 3 : Surcharger minCompileSdk via Gradle (exotique)

\n

Il existe une méthode astucieuse mais non documentée : surcharger les métadonnées AAR via la configuration Gradle. Cette méthode n'est pas recommandée pour la production, mais peut sauver la mise si la bibliothèque n'est pas mise à jour.

\n\n
andr                

Blogs

Book Recommendations