المشكلة التي تواجهك في مشروعك بدأت تظهر بعد إضافة تبعية Facebook، حيث يظهر خطأ يتعلق بـ MultiDex
، ولم يكن أي من الحلول المقترحة ينجح في حل المشكلة. يبدو أيضًا أن Gradle يستغرق وقتًا أطول أثناء البناء بالمقارنة مع الوضع العادي.
السبب الرئيسي لهذه المشكلة يعود إلى عدم قدرة النظام على تحويل الفئات (Classes) بشكل صحيح أثناء عملية البناء، وهو أمر يتعلق بتضمين مكتبات كبيرة مثل تلك المتعلقة بتبعية Facebook و Google Play Services.
لحل هذه المشكلة، يمكنك اتباع الخطوات التالية:
أولاً، قم بتحديث إصدار com.android.support:multidex
في ملف build.gradle
الخاص بك إلى الإصدار الأحدث. يمكنك استخدام الإصدار 2.0.1، على سبيل المثال.
gradledependencies { // ... implementation 'com.android.support:multidex:2.0.1' }
ثم، قم بتحديث إصدار compileSdkVersion
و targetSdkVersion
إلى الإصدار الأحدث. يمكنك استخدام الإصدار 30، على سبيل المثال.
gradleandroid { compileSdkVersion 30 targetSdkVersion 30 // ... }
أخيراً، قم بإعادة بناء المشروع وتشغيله. إذا استمرت المشكلة، قم بتنظيف المشروع وإعادة بنائه باستخدام أوامر Gradle المناسبة.
bash./gradlew clean ./gradlew build
بعد تنفيذ هذه الخطوات، يجب أن يكون لديك مشروع يعمل بشكل صحيح دون أي مشاكل تتعلق بتبعية Facebook و MultiDex.
المزيد من المعلومات
بالطبع، سأقدم لك مزيدًا من المعلومات لتفهم المشكلة بشكل أفضل وتكون قادرًا على التعامل معها بفعالية.
أولًا، يبدو أن المشكلة تتعلق بحجم المشروع والعدد الكبير من المكتبات التي يتم استخدامها، خاصةً تلك المتعلقة بتبعية Facebook و Google Play Services. استخدام MultiDex يأتي لتخطي هذا القيد الذي يفرضه Android على عدد الفئات، ولكن يبدو أن هناك تعارضًا أو مشكلة في عملية التحويل.
قد تكون هناك طريقتين إضافيتين يمكنك اتخاذهما للتعامل مع هذه المشكلة:
-
تفعيل تشغيل المصفوفة الدمجية (Incremental Dexing): قم بتجربة تفعيل هذه الميزة في ملف
gradle.properties
الخاص بمشروعك. قد تساعد هذه الميزة في تسريع عملية بناء التطبيق.propertiesandroid.useAndroidX=true android.enableJetifier=true android.useAndroidX=true android.enableD8.incremental=true
-
تحديد إصدارات محددة لتبعيات Google Play Services و Facebook SDK: بعض الأحيان، قد يحدث تضارب بين إصدارات تبعيات مختلفة. جرب تحديد إصدارات محددة لتبعياتك.
gradlecompile 'com.facebook.android:facebook-android-sdk:5.15.3' compile 'com.google.android.gms:play-services:17.5.0'
بعد إجراء هذه التعديلات، قم بإعادة بناء المشروع وراقب إخراج Gradle للتحقق مما إذا كانت المشكلة قد حلت. إذا استمرت المشكلة، قم بفحص تفاصيل الخطأ بدقة وشاركها هنا لأتمكن من تقديم مساعدة أدق.