أخطاء APK

حد Dex: ‏65536 دالة

نص الخطأ

Cannot fit requested classes in a single dex file (# fields: 70000 > 65536)
D8: The number of methods in the dex file exceeds 65536

السبب

يتسع ملف dex الواحد لـ 65,536 دالة على الأكثر. حين يتجاوزها التطبيق ومكتباته يوقف D8 البناء.

الحل خطوة بخطوة

  1. إن كان minSdk ‏21 أو أعلى فاكتب multiDexEnabled = true فقط.
  2. إن كان أقل من 21 فأضف androidx.multidex:multidex واستدعِ MultiDex.install في صنف Application.
  3. في بناء release شغّل R8 بـ isMinifyEnabled = true: تُحذف الدوال غير المستخدمة.
  4. اختر من المكتبات الثقيلة الوحدة اللازمة فقط (مثلًا لا كل Google Play Services).
  5. افتح APK Analyzer لترى أي حزمة تأخذ المساحة الأكبر.

أوامر للمثال

android {
  defaultConfig {
    minSdk = 21
    multiDexEnabled = true
  }
}
dependencies { implementation("androidx.multidex:multidex:2.0.1") }   // yalnız minSdk < 21

كيف لا يتكرر

أضف المكتبة الكبيرة عبر وحدتها المحددة لا كاملة.

المؤلف والترخيص: Nibras Code