APK hataları

Dex sınırı: 65536 metot

Hata metni

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

Neden

Bir dex dosyasına en çok 65.536 metot sığar. Uygulama ve kütüphaneler bunu aşınca D8 derlemeyi durdurur.

Adım adım çözüm

  1. minSdk 21 veya üstüyse sadece multiDexEnabled = true yaz.
  2. 21'in altındaysa androidx.multidex:multidex ekle ve Application sınıfında MultiDex.install çağır.
  3. Release derlemede isMinifyEnabled = true ile R8'i aç: kullanılmayan metotlar silinir.
  4. Ağır kütüphanelerden yalnız gereken modülü seç (örneğin tüm Google Play Services değil).
  5. APK Analyzer ile hangi paketin çok yer tuttuğuna bak.

Örnek komutlar

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

Tekrarlanmasın diye

Büyük kütüphaneyi bütün olarak değil, gereken modülüyle ekle.

Yazar ve lisans: Nibras Code