App引用的库太多,方法数超过65536后无法编译。这是因为单个dex里面不能有超过65536个方法。为什么有最大的限制呢, 因为android会把每一个类的方法id检索起来,存在一个链表结构里面。但是这个链表的长度是用一个short类型来保存的, short占两个字节(保存-2的15次方到2的15次方-1,即-32768~32767),最大保存的数量就是65536。新版本的Android系统中修复了这个问题, 但是我们仍然需要对低版本的Android系统做兼容.
操作方法如下:
首先要在app包下的build.gradle添加:
1.
dexOptions { |
2.
dependencies { |
Application必须继承 MultiDexApplication ,分包语句才会生效
4.
defaultConfig :整个工程的全局配置。(运行,打包都起作用)multiDexEnabled:表示是否分包