Erreur Kotlin : Module was compiled with incompatible version – solution

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

« Le module a été compilé avec une version incompatible de Kotlin » — comment j'ai vaincu cette erreur et vous le pouvez aussi

\n\n

Avez-vous déjà eu l'impression d'être Sherlock Holmes en essayant de comprendre un message mystérieux du compilateur ? Si vous travaillez avec Kotlin, vous avez sûrement rencontré ce monstre de Frankenstein : « Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.15 ». Des milliers de développeurs sur Stack Overflow se sont cassé la tête sur cette erreur. Et moi aussi.

\n\n

Imaginez : vous avez mis à jour les dépendances, appuyé sur « Run » et… boum ! Votre projet refuse de se compiler, et ce message s'affiche dans la console. Cela vous dit quelque chose ? Comprenons pourquoi cela se produit et comment faire fonctionner votre code.

\n\n

Pourquoi l'erreur se produit : une brève introduction

\n\n

Kotlin est un langage en pleine évolution. Chaque nouvelle version apporte des améliorations, mais aussi des problèmes de compatibilité. L'essence de l'erreur est simple : vous utilisez une bibliothèque (module) qui a été compilée avec une version de Kotlin (dans notre cas, 1.5.1), alors que votre projet en attend une autre (1.1.15). C'est comme essayer d'insérer une carte SIM d'un iPhone 14 dans un Nokia 3310 — physiquement incompatible.

\n\n

L'erreur incompatible version of Kotlin survient généralement dans les projets où :

\n
    \n
  • Android Studio ou IntelliJ IDEA est utilisé
  • \n
  • La gestion des dépendances se fait via Gradle
  • \n
  • Des bibliothèques ou modules tiers sont connectés
  • \n
  • Les versions du plugin Kotlin et de Kotlin stdlib ne correspondent pas
  • \n
\n\n

Examinons trois des moyens les plus efficaces pour résoudre le problème. Nous irons du plus simple au plus fiable.

\n\n

Méthode n°1 : Synchroniser les versions de Kotlin (la plus évidente)

\n\n

La première chose à faire est de vérifier que tous les composants de votre projet utilisent la même version de Kotlin. C'est comme accorder un orchestre : tous les instruments doivent jouer dans la même tonalité.

\n\n

Étape 1 : Vérifier la version du plugin Kotlin

\n

Ouvrez le fichier build.gradle (au niveau du projet) et trouvez la section buildscript. Assurez-vous que la version du plugin correspond à vos attentes :

\n\n
// build.gradle (Project level)\nbuildscript {\n    ext.kotlin_version = '1.5.1' // ou votre version\n    repositories {\n        google()\n        mavenCentral()\n    }\n    dependencies {\n        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"\n        // autres dépendances\n    }\n}
\n\n

Étape 2 : Vérifier la version dans le module app

\n

Maintenant, regardez dans le build.gradle de votre module (généralement app). La version de Kotlin doit également y être spécifiée :

\n\n
// build.gradle (Module: app)\napply plugin: 'com.android.application'\napply plugin: 'kotlin-android'\n\nandroid {\n    // ... configuration Android\n}\n\ndependencies {\n    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"\n    // autres dépendances\n}
\n\n

Étape 3 : Synchroniser Gradle

\n

Après avoir modifié les versions, cliquez impérativement sur Sync Now dans Android Studio. Cela mettra à jour toutes les dépendances. Si l'erreur était due à une simple désynchronisation, elle disparaîtra.

\n\n
\n

💡 Astuce de pro : Si vous utilisez la variable $kotlin_version dans les deux fichiers, il suffit de la modifier à un seul endroit. Cela réduit le risque d'erreurs.

\n
\n\n

Méthode n°2 : Nettoyer le cache et reconstruire le projet

\n\n

Parfois, Gradle met en cache les anciennes versions des bibliothèques. Même si vous avez tout corrigé dans la configuration, il peut obstinément utiliser l'ancienne version. C'est comme un vieux cache de navigateur — il faut le vider.

\n\n

Étape 1 : Invalidate Caches

\n

Dans Android Studio ou IntelliJ IDEA :

\n