«الوحدة النمطية تم تجميعها بإصدار غير متوافق من 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). هذا مثل محاولة إدخال شريحة SIM من iPhone 14 في Nokia 3310 — لا تناسب فيزيائيًا.
\n\nخطأ incompatible 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
\nافتح ملف build.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الآن افحص build.gradle الخاص بوحدتك (عادةً app). يجب أن يكون إصدار 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بعد تغيير الإصدارات، تأكد من الضغط على Sync Now في Android Studio. هذا سيحدث جميع التبعيات. إذا كان الخطأ ناتجًا عن عدم التزامن البسيط، فسيختفي.
\n\n💡 نصيحة من محترف: إذا كنت تستخدم المتغير $kotlin_version في كلا الملفين، يكفي تغييره في مكان واحد فقط. هذا يقلل من خطر الأخطاء.
الطريقة رقم 2: تنظيف ذاكرة التخزين المؤقت وإعادة بناء المشروع
\n\nأحيانًا يقوم Gradle بتخزين الإصدارات القديمة من المكتبات. حتى لو قمت بإصلاح كل شيء في الإعدادات، قد يستمر في سحب الإصدار القديم. هذا مثل ذاكرة التخزين المؤقت القديمة في المتصفح — تحتاج إلى تنظيفها.
\n\nالخطوة 1: إبطال ذاكرة التخزين المؤقت (Invalidate Caches)
\nفي Android Studio أو IntelliJ IDEA:
\n- \n
- اذهب إلى
File → Invalidate Caches and Restartالمدونات
توصيات الكتب
اقرأ أيضًا
التخزين المؤقت في Java: Redis وMemcached والحلول المدمجة من الألف إلى الياء
مراقبة تطبيقات Go: 3 أدوات لتسجيل الأحداث والتتبع
علامات الاقتباس الغامضة في Rust: ما الذي تخفيه المعرفات بين علامتي اقتباس؟
Go في 2025: خارطة طريق كاملة للمطور من المبتدئ إلى المحترف
كيفية عرض قائمة الملفات في مجلد باستخدام Rust: دليل خطوة بخطوة