اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

المشكلة التي تشيري إليها في الصورة هي:

‘ Cannot fit requested classes in a single dex file (# methods: 137997 > 65536)

و تحدث عندما يتم تجاوز الحد الأقصى لعدد الطرق المسموح به في تطبيق Android، حيث يستخدم Android Dalvik Executable (DEX) تنسيقًا مخصصًا لتشغيل التطبيقات على منصة Android، ويحتوي على قاعدة بيانات لجميع الطرق المستخدمة في التطبيق.

ويتم فصل التطبيقات إلى عدة ملفات DEX عندما يتم بلوغ الحد الأقصى لعدد الطرق في ملف DEX الواحد، ولكن في بعض الأحيان قد تكون عدد الطرق أكبر من الحد الأقصى المسموح به لملف DEX الواحد، ومن ثم يظهر رسالة الخطأ السابقة.

ولتفعيل تجزئة الأساسيات، يجب إضافة مكتبة Multidex إلى ملف build.gradle للتطبيق باستخدام الكود التالي:

implementation 'com.android.support:multidex:1.0.3'

ثم عليك بتفعيل تجزئة الأساسيات في defaultConfig بإضافة السطر التالي:

multiDexEnabled true

مثال:

defaultConfig {
    ...

    multiDexEnabled true
}

وإذا استمرت المشكلة أي بعد تجربة الحلول السابقة، حاولي إضافة الكود التالي إلى ملف الإعدادات الرئيسي للتطبيق:

<application
android:name=".MyApplication"
... >
...
</application>

وعندما يتم تشغيل التطبيق، سيقوم نظام Android بتشغيل MyApplication بدلاً من التطبيق الافتراضي، مما يسمح بزيادة حدود الطرق المسموح بها وتفادي مشكلة "Cannot fit requested classes in a single dex file (# methods: 137997 > 65536)".

  • 0
نشر

الرسالة التالية:

2 files found with path 'androidsupportmultidexversion.txt'.
Adding a packagingOptions block may help, please refer to

تعني أن هناك ملفين يحملان نفس الاسم "androidsupportmultidexversion.txt" وموجودان في مجلدات مختلفة في مشروع تطبيق Android.

وقد يكون هذا الخطأ سببًا في فشل عملية بناء التطبيق، أيضًا قد يحدث إذا كان هناك اعتمادات (dependencies) متعددة تحمل نفس الاسم في مشروع التطبيق، والتي تحتوي على ملفات بنفس الاسم.

حاولي  إضافة كود إلى ملف الإعدادات الرئيسي للتطبيق (build.gradle)، وذلك باستخدام بلوك "packagingOptions"، حيث يتم تحديد الأسماء المستخدمة للملفات المتعددة وتحديد كيفية التعامل معها.

فمثلاً، تستطيعي إضافة الكود التالي إلى build.gradle:

android {
    // ...
    packagingOptions {
        pickFirst 'androidsupportmultidexversion.txt'
    }
}

يتم استخدام "pickFirst" هنا لتحديد أن يتم اختيار النسخة الأولى من هذا الملف المكرر وتجاهل النسخة الثانية، والتي يتم تحميلها من مكتبات أخرى أو تعتمد عليها.

بعد إضافة هذا الكود، يجب تشغيل عملية بناء جديدة للتطبيق للتأكد من أن المشكلة تم حلها.

  • 0
نشر
بتاريخ 3 دقائق مضت قال Mustafa Suleiman:

يتم استخدام "pickFirst" هنا لتحديد أن يتم اختيار النسخة الأولى من هذا الملف المكرر وتجاهل النسخة الثانية، والتي يتم تحميلها من مكتبات أخرى أو تعتمد عليها.

طب ما بأثر عالبرنامج كله او المشروع ؟؟؟؟ يعني بديش اعمل شي يزبط ويخرب الي قبل؟

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...