這種原因目前我知道的有兩個(gè):
1.方法數(shù)超過65K;
?解決辦法愕秫,當(dāng)然是減少方法數(shù),或者使用分包的方式了焰络。一般情況下戴甩,不會(huì)超過65K,最大的可能是導(dǎo)入的包太大了闪彼,比如導(dǎo)入了google的service包甜孤,好好檢查下协饲,看看是哪個(gè)包太大了,替換掉
2缴川。如果不是方法超限茉稠,就是重包了。
重包的原因有很多把夸,我把我知道的幾個(gè)原因列出來而线,方便查詢和對(duì)癥下藥:
1.我這次報(bào)錯(cuò)是因?yàn)橹匕?dāng)然并不是導(dǎo)入的包版本不一致導(dǎo)致的重包恋日,而是我的library module 膀篮,在這個(gè)module里面有個(gè)類 與我的app module里面的類 包名和類名一樣的,因?yàn)槲以谥貥?gòu)我的項(xiàng)目岂膳,在轉(zhuǎn)移一些類的時(shí)候誓竿,忘記刪除原來位置的類了。
2.就是項(xiàng)目本身有依賴 Library Module,然而build.gradle文件中 compile 了一些第三方跟app Module中compile的版本不一致谈截,導(dǎo)致的重包
最經(jīng)典的就是:compile'com.android.support:appcompat-v7:24.1.0' 筷屡,V7包版本不一致的問題了。
3.今天幫一位網(wǎng)友解決類似的問題簸喂,他的問題是:在app Module中compile 了 V7包毙死,而在Library Module中導(dǎo)入的卻是v4 包,報(bào)了錯(cuò)娘赴,把v4 改成v7 规哲,問題解決!
特別注意:如果刪除多余的類和jar包后诽表,如果還不行唉锌,可以刪除build文件,再clean一下