最近將一個(gè)老的Eclipse項(xiàng)目轉(zhuǎn)到Android Studio后骄噪,用gradle添加了幾個(gè)依賴,項(xiàng)目可以make蠢箩,但是一旦run就報(bào)錯(cuò)
Error:The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
原因
項(xiàng)目的方法數(shù)超過(guò)了64k链蕊,需要進(jìn)行分包處理!
Android Studio解決方案:
至于Eclipse的解決方法谬泌,似乎需要采用相應(yīng)插件滔韵!
第一步,添加依賴
implementation 'com.android.support:multidex:1.0.1'`
第二步掌实,添加配置陪蜻,build.gradle(app)
- buildTypes
dexOptions {
preDexLibraries false
}
這里是需要添加到buildTypes
中,注意如果app依賴其他的module贱鼻,那么在相應(yīng)的moudle(build.gradle)中也需要添加宴卖!
- 在defaultConfig下添加
multiDexEnabled true
第三步,創(chuàng)建MultiDexApplication
- 如果你有自定義的Application
自定義Application 繼承android.support.multidex.MultiDexApplication;
忱嘹,然后重寫其attachBaseContext
方法
/**
* 方法超過(guò)64K嘱腥,需要采用分包
* fjj 2019-3-27
* @param base
*/
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this); // 初始化
}
- 如果你自己的項(xiàng)目沒(méi)有自定義Application,也不需要自定義時(shí)拘悦,可直接在
AndroidManifest.xml
的application
下指定:
android:name="android.support.multidex.MultiDexApplication;"
最后
此致齿兔,敬禮!