"Module was compiled with an incompatible version of Kotlin" – मैंने इस त्रुटि को कैसे हराया और आप भी कर सकते हैं
\n\nक्या आपने कभी खुद को शर्लक होम्स की तरह महसूस किया है, कंपाइलर के एक रहस्यमयी संदेश को समझने की कोशिश करते हुए? अगर आप Kotlin के साथ काम करते हैं, तो आपने शायद इस फ्रेंकस्टाइन राक्षस का सामना किया होगा: "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"। Stack Overflow पर हज़ारों डेवलपर्स ने इस त्रुटि पर अपना दिमाग खपाया है। और मैंने भी।
\n\nकल्पना करें: आपने डिपेंडेंसी अपडेट की, "Run" दबाया और... बैम! आपका प्रोजेक्ट बिल्ड होने से इनकार कर देता है, और कंसोल में यह संदेश दिखता है। परिचित लग रहा है? आइए समझते हैं कि ऐसा क्यों होता है और अपने कोड को कैसे काम करें।
\n\nयह त्रुटि क्यों होती है: एक संक्षिप्त जानकारी
\n\nKotlin एक ऐसी भाषा है जो तेज़ी से विकसित हो रही है। हर नया वर्जन सुधार लाता है, लेकिन साथ ही संगतता समस्याएं भी। त्रुटि का सार सरल है: आप एक लाइब्रेरी (मॉड्यूल) का उपयोग कर रहे हैं जो Kotlin के एक वर्जन (हमारे मामले में 1.5.1) के लिए कंपाइल की गई है, जबकि आपका प्रोजेक्ट दूसरे वर्जन (1.1.15) की अपेक्षा करता है। यह ऐसा है जैसे आप iPhone 14 का SIM कार्ड Nokia 3310 में डालने की कोशिश कर रहे हों – शारीरिक रूप से फिट नहीं होता।
\n\nincompatible version of Kotlin त्रुटि आमतौर पर उन प्रोजेक्ट्स में होती है जहां:
- \n
- Android Studio या IntelliJ IDEA का उपयोग किया जाता है \n
- डिपेंडेंसी मैनेजमेंट Gradle के माध्यम से होता है \n
- थर्ड-पार्टी लाइब्रेरी या मॉड्यूल कनेक्ट होते हैं \n
- Kotlin प्लगइन और Kotlin stdlib के वर्जन मेल नहीं खाते \n
आइए समस्या को हल करने के तीन सबसे प्रभावी तरीकों पर नज़र डालें। हम सबसे सरल से सबसे विश्वसनीय की ओर बढ़ेंगे।
\n\nतरीका #1: Kotlin वर्जन को सिंक्रोनाइज़ करें (सबसे स्पष्ट)
\n\nपहला कदम यह जांचना है कि आपके प्रोजेक्ट के सभी घटक Kotlin के एक ही वर्जन का उपयोग कर रहे हैं। यह एक ऑर्केस्ट्रा को ट्यून करने जैसा है: सभी उपकरणों को एक ही सुर में बजना चाहिए।
\n\nचरण 1: Kotlin प्लगइन वर्जन जांचें
\nbuild.gradle (प्रोजेक्ट लेवल) फ़ाइल खोलें और buildscript सेक्शन ढूंढें। सुनिश्चित करें कि प्लगइन वर्जन आपकी अपेक्षाओं से मेल खाता है:
// build.gradle (Project level)\nbuildscript {\n ext.kotlin_version = '1.5.1' // या आपका वर्जन\n repositories {\n google()\n mavenCentral()\n }\n dependencies {\n classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"\n // अन्य डिपेंडेंसी\n }\n}\n\nचरण 2: मॉड्यूल app में वर्जन जांचें
\nअब अपने मॉड्यूल (आमतौर पर app) के build.gradle में देखें। वहां भी Kotlin वर्जन निर्दिष्ट होना चाहिए:
// build.gradle (Module: app)\napply plugin: 'com.android.application'\napply plugin: 'kotlin-android'\n\nandroid {\n // ... Android कॉन्फ़िगरेशन\n}\n\ndependencies {\n implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"\n // अन्य डिपेंडेंसी\n}\n\nचरण 3: Gradle सिंक्रोनाइज़ करें
\nवर्जन बदलने के बाद, Android Studio में Sync Now बटन दबाना न भूलें। यह सभी डिपेंडेंसी को अपडेट करेगा। अगर त्रुटि सिर्फ डीसिंक्रोनाइज़ेशन के कारण थी, तो यह गायब हो जाएगी।
\n\n💡 प्रो टिप: अगर आप दोनों फ़ाइलों में $kotlin_version वेरिएबल का उपयोग करते हैं, तो इसे केवल एक जगह बदलना पर्याप्त है। इससे त्रुटियों का जोखिम कम होता है।
तरीका #2: कैश साफ़ करें और प्रोजेक्ट को रीबिल्ड करें
\n\nकभी-कभी Gradle पुराने लाइब्रेरी वर्जन को कैश कर लेता है। भले ही आपने कॉन्फ़िगरेशन में सब कुछ ठीक कर दिया हो, यह जिद्दी रूप से पुराने वर्जन को खींच सकता है। यह ब्राउज़र के पुराने कैश की तरह है – इसे साफ़ करने की ज़रूरत है।
\n\nचरण 1: Invalidate Caches
\nAndroid Studio या IntelliJ IDEA में:
\n- \n
File → Invalidate Caches and Restartपर जाएं \n