Multidex support

ممکنه تا بحال با یکی از این خطا ها مواجه شده باشید:

Conversion to Dalvik format failed:
Unable to execute dex: method ID not in [0, 0xffff]: 65536

 

و یا

trouble writing output:
Too many field references: 131000; max is 65536.
You may try using --multi-dex option.

 

در این صورت شما به حداکثر مجاز تعداد متدها در برنامه رسیدید ( که شامل متد های فریم ورک اندروید، لایبرری های استفاده شده، و متدهای موجود در کد می باشد)

برای رفع این مشکل باید Multidex  رو فعال کنید

برای این کار در فایل build.gradle در قسمت defaultConfig کد

multiDexEnabled true

را به شکل زیر وارد کنید،

android {
    defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 25
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.1'
}

توجه داشته باشید که حتماااا لایبرری multidex رو هم به پروژه اضافه کنید، در غیر اینصورت در اندروید های زیر ۵ به ارور noclassDefFoundError خواهید خورد

همچنین در کلاس Application برنامه کد زیر را وارد کنید:

@Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
  }

 

خیلی به این ۲ قسمت توجه کنید(منظورم افزودن لایبرری و خط MultiDex.install(this); هست)

چرا که من خودم چند روز با این قسمت درگیر بودم، برنامه روی اندروید بالای ۵ کار می کرد ولی زیر ۴ کار نمی کرد چون فقط multiDexEnabled true رو به برنامه اضافه کرده بود و بعد از پی بردن به مسئله و افزودن لایبرری مشکل حل شد.

 

برای اطلاعات بیشتردر این زمینه میتونید این لینک رو مطالعه کنید : https://developer.android.com/studio/build/multidex.html

برچسب ها:
پست قبلی
پست بعدی

درباره ایلیا عابدینی

برنامه نویس اندروید و کارشناس مهندسی پزشکی،
نفر سوم مسابقه برنامه نویسی اندروید http://www.schallenge.ir
، از سال 92 برنامه نویسی اندروید رو شروع کردم و در حال حاضر در شرکت عصر دانش در حال توسعه اپلیکیشن تجارت پی می باشدم ، این وبلاگ رو ساختم تا تجربیات روزانه و مفید خودم رو داخل اون بزارم.
رزومه : iact.ir/cv

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نمی شود.علامت دارها لازمند. *

*

رفتن به بالا