APK xətaları

Dex limiti: 65536 metod

Xəta mətni

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

Səbəb

Bir dex faylına ən çox 65536 metod sığır. Layihə və kitabxanalar bunu keçəndə D8 qurmanı dayandırır.

Addım-addım həll

  1. minSdk 21 və ya yuxarıdırsa multiDexEnabled = true yaz, vəssalam.
  2. minSdk 21-dən aşağıdırsa androidx.multidex:multidex əlavə et və Application sinfində MultiDex.install çağır.
  3. Release quruluşunda isMinifyEnabled = true ilə R8 işlət: istifadə olunmayan metodlar silinir.
  4. Ağır kitabxanaların (məsələn, bütöv Google Play Services) yalnız lazım olan hissəsini seç.
  5. APK Analyzer ilə hansı paketin çox yer tutduğunu gör.

Nümunə əmrlər

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

Təkrarlanmasın deyə

Böyük kitabxananı bütövlükdə yox, lazımi modulla əlavə et.

Müəllif və lisenziya: Nibras Code