前言
在安卓項(xiàng)目開發(fā)過程中,我們免不了會(huì)接觸三方SDK的引用開發(fā),比較常見的SDK有基于地圖的高德地圖SDK,基于社會(huì)化分享的友盟統(tǒng)計(jì)SDK,以及基于Bug日志獲取的騰訊Bugly SDK等。由于不同的SDK開發(fā)方不同,所以經(jīng)常性的會(huì)引入Jar包沖突無法打包的問題,如果是三方SDK引用了本地已經(jīng)使用的Jar包,我們將沖突的Jar刪除即可,如果是兩個(gè)三方SDK引用了相同Jar包,我們則需要對SDK進(jìn)行一些特殊處理。
打包異常

zipException.png
如圖所示,在工程進(jìn)行APK打包的時(shí)候報(bào)了一個(gè)ZipException,出現(xiàn)這個(gè)異常的原因在于兩個(gè)Jar包中使用了想同包名相同類名的文件,導(dǎo)致程序不知道該使用哪一個(gè)類文件。

沖突Jar包(1).png

沖突Jar包(2).png
解決方案
當(dāng)兩個(gè)三方SDK使用相同包名相同類名的文件時(shí),我們需要手動(dòng)解決這個(gè)沖突,具體實(shí)現(xiàn)方法為將Jar包重命名為zip文件并解壓。

重命名zip.png
找到對應(yīng)沖突的文件,刪除沖突的文件,保證兩個(gè)Jar包中相同包名與相同類名的文件只能存在一個(gè),刪除沖突文件后,對文件進(jìn)行重新打包。
使用cmd進(jìn)入文件路徑:

cmd指令.png
jar cvf after_delete.jar .

打包Jar包.png
命令執(zhí)行完成,在執(zhí)行目錄會(huì)發(fā)現(xiàn)手動(dòng)解決沖突的Jar包,使用新Jar包重新打包即可解決打包沖突問題。