原因分析
Android打包的DEX过程中, 单个DEX文件可被引用的方法总数被限制为65536, 当应用程序和库引用达到一定规模,就会超过这个限制,这时就得分割Dex。
解决方案
添加依赖于build.gradle支持MultiDex库
dependencies { ... compile 'com.Android.support:multidex:1.0.1' ... }
在buildType或productFlavor中开启multiDexEnabled
defaultConfig { ... multiDexEnabled true ... }
添加Application支持
(1)如果你的Application继承于Application类,让它继承 android.support.multidex.MultiDexApplication而不是android.app.Application
(2)如果你的Application继承于第三方Application类,无法改变基类,那么可以重写attachBaseContext()
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);