这种原因目前我知道的有两个:
1.方法数超过65K;
解决办法,当然是减少方法数,或者使用分包的方式了。一般情况下,不会超过65K,最大的可能是导入的包太大了,比如导入了google的service包,好好检查下,看看是哪个包太大了,替换掉
2。如果不是方法超限,就是重包了。
重包的原因有很多,我把我知道的几个原因列出来,方便查询和对症下药:
1.我这次报错是因为重包,当然并不是导入的包版本不一致导致的重包,而是我的library module ,在这个module里面有个类 与我的app module里面的类 包名和类名一样的,因为我在重构我的项目,在转移一些类的时候,忘记删除原来位置的类了。
2.就是项目本身有依赖 Library Module,然而build.gradle文件中 compile 了一些第三方跟app Module中compile的版本不一致,导致的重包
最经典的就是:compile'com.android.support:appcompat-v7:24.1.0' ,V7包版本不一致的问题了。
3.今天帮一位网友解决类似的问题,他的问题是:在app Module中compile 了 V7包,而在Library Module中导入的却是v4 包,报了错,把v4 改成v7 ,问题解决!
特别注意:如果删除多余的类和jar包后,如果还不行,可以删除build文件,再clean一下