إصلاح خطأ java.lang.NoClassDefFoundError

إصلاح خطأ java.lang.NoClassDefFoundError

يُعدّ خطأ “java.lang.NoClassDefFoundError no apparent reason” من الأخطاء الشائعة التي قد تواجه مطوّري تطبيقات أندرويد. ولهذا الخطأ سببان رئيسيان، أولّهما هو استخدام Android Development Tools قديمة تتطلب التحديث من قبل المستخدم. أما السبب الثاني والأكثر خطورة فهو عدم تمكّن البرنامج من العثور على فئة معيّنة أو فئة تعتمد عليها تلك الفئة أثناء وقت التشغيل، على الرغم من توفّرها أثناء وقت الترجمة.

تُمثّل هذه المشكلة تحدّيًا كبيرًا لمطوّري جافا، وغالبًا ما يسعون إلى إصلاحها بأسرع وقت ممكن. في هذا المقال، سنستعرض حلين فعّالين لهذه المشكلة، والسابق استخدامهما من قبل العديد من مطوّري تطبيقات أندرويد الذين واجهوا نفس الخطأ:

الحل الأول: تنظيف المشروع

قبل البدء، يُنصح بأخذ نسخة احتياطية من المشروع الذي سيتم تنظيفه. على الرغم من أنّ عملية التنظيف آمنة بشكل عام، إلّا أنّ الوقاية خيرٌ من العلاج.

  1. انتقل إلى قسم “Project” في شريط الأدوات.
  2. اختر “Clean” من القائمة المنسدلة.
  3. في النافذة التي ستظهر، حدّد خيار “Clean projects selected below“.
  4. اختر المشاريع التي تُريد تنظيفها.
  5. انقر على “OK“.

NoClassDefFoundError1

الحل الثاني: التحقّق من المكتبات غير المحدّدة في Build Path

ابحث عن المجلّد الذي يحتوي على مكتبات .jar . عادةً ما يكون اسم هذا المجلّد “libs” . إذا كان اسمه “lib” ، فانقر بزر الماوس الأيمن على المجلّد، واختر “Refactor” ، ثمّ “Rename”. غيّر اسم المجلّد إلى “libs”.

انقر بزر الماوس الأيمن على المشروع الذي يعرض خطأ “java.lang.NoClassDefFoundError” ، واختر “Build Path” ، ثمّ حدّد “Configure Build Path“.

انتقل إلى علامة التبويب “Order and Export” .

حدّد المربّعات الموجودة بجانب أيّ مكتبات .jar (مثل “gcm.jar” و “libGoogleAnalyticsV2.jar” ) غير محدّدة.

قم بتنظيف المشروع مرّة أخرى كما هو موضّح في الحلّ الأوّل.

HDegy | إصلاح خطأ java.lang.NoClassDefFoundError