خطأ Kotlin: تم تجميع الوحدة النمطية بإصدار غير متوافق – الحل

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

«الوحدة النمطية تم تجميعها بإصدار غير متوافق من 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\n

Kotlin هي لغة تتطور بنشاط. كل إصدار جديد يجلب تحسينات، ولكن معها أيضًا مشاكل التوافق. جوهر الخطأ بسيط: أنت تستخدم مكتبة (وحدة نمطية) تم تجميعها لإصدار معين من Kotlin (في حالتنا 1.5.1)، بينما مشروعك يتوقع إصدارًا آخر (1.1.15). هذا مثل محاولة إدخال شريحة SIM من iPhone 14 في Nokia 3310 — لا تناسب فيزيائيًا.

\n\n

خطأ incompatible version of Kotlin يظهر عادةً في المشاريع التي:

\n
    \n
  • تستخدم Android Studio أو IntelliJ IDEA
  • \n
  • إدارة التبعيات عبر Gradle
  • \n
  • تحتوي على مكتبات أو وحدات طرف ثالث
  • \n
  • إصدارات إضافة Kotlin و Kotlin stdlib غير متطابقة
  • \n
\n\n

دعنا نستعرض ثلاث طرق فعالة لحل المشكلة. سننتقل من الأسهل إلى الأكثر موثوقية.

\n\n

الطريقة رقم 1: مزامنة إصدارات Kotlin (الأكثر وضوحًا)

\n\n

أول شيء يجب فعله هو التحقق من أن جميع مكونات مشروعك تستخدم نفس إصدار Kotlin. هذا مثل ضبط أوركسترا: يجب أن تعزف جميع الآلات بنفس النغمة.

\n\n

الخطوة 1: التحقق من إصدار إضافة Kotlin

\n

افتح ملف build.gradle (على مستوى المشروع) وابحث عن قسم buildscript. تأكد من أن إصدار الإضافة يتوافق مع توقعاتك:

\n\n
// 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 محددًا هناك أيضًا:

\n\n
// 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
\n

💡 نصيحة من محترف: إذا كنت تستخدم المتغير $kotlin_version في كلا الملفين، يكفي تغييره في مكان واحد فقط. هذا يقلل من خطر الأخطاء.

\n
\n\n

الطريقة رقم 2: تنظيف ذاكرة التخزين المؤقت وإعادة بناء المشروع

\n\n

أحيانًا يقوم Gradle بتخزين الإصدارات القديمة من المكتبات. حتى لو قمت بإصلاح كل شيء في الإعدادات، قد يستمر في سحب الإصدار القديم. هذا مثل ذاكرة التخزين المؤقت القديمة في المتصفح — تحتاج إلى تنظيفها.

\n\n

الخطوة 1: إبطال ذاكرة التخزين المؤقت (Invalidate Caches)

\n

في Android Studio أو IntelliJ IDEA:

\n