最近将一个老的Eclipse项目转到Android Studio后,用gradle添加了几个依赖,项目可以make,但是一旦run就报错
1
2 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
原因
项目的方法数超过了64k,需要进行分包处理!
Android Studio解决方案:
至于Eclipse的解决方法,似乎需要采用相应插件!
第一步,添加依赖
1 | implementation 'com.android.support:multidex:1.0.1'` |
第二步,添加配置,build.gradle(app)
- buildTypes
1
2
3dexOptions {
preDexLibraries false
}
这里是需要添加到buildTypes
中,注意如果app依赖其他的module,那么在相应的moudle(build.gradle)中也需要添加!
- 在defaultConfig下添加
1
multiDexEnabled true
第三步,创建MultiDexApplication
如果你有自定义的Application
自定义Application 继承android.support.multidex.MultiDexApplication;
,然后重写其attachBaseContext
方法1
2
3
4
5
6
7
8
9
10/**
* 方法超过64K,需要采用分包
* fjj 2019-3-27
* @param base
*/
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this); // 初始化
}如果你自己的项目没有自定义Application,也不需要自定义时,可直接在
AndroidManifest.xml
的application
下指定:1
android:name="android.support.multidex.MultiDexApplication;"
最后
此致,敬礼!