前言
在安卓項(xiàng)目開發(fā)過程中,我們免不了會接觸三方SDK的引用開發(fā)臂外,比較常見的SDK有基于地圖的高德地圖SDK汹想,基于社會化分享的友盟統(tǒng)計SDK预皇,以及基于Bug日志獲取的騰訊Bugly SDK等。由于不同的SDK開發(fā)方不同逮诲,所以經(jīng)常性的會引入Jar包沖突無法打包的問題帜平,如果是三方SDK引用了本地已經(jīng)使用的Jar包幽告,我們將沖突的Jar刪除即可,如果是兩個三方SDK引用了相同Jar包罕模,我們則需要對SDK進(jìn)行一些特殊處理评腺。
打包異常
如圖所示,在工程進(jìn)行APK打包的時候報了一個ZipException淑掌,出現(xiàn)這個異常的原因在于兩個Jar包中使用了想同包名相同類名的文件蒿讥,導(dǎo)致程序不知道該使用哪一個類文件。
解決方案
當(dāng)兩個三方SDK使用相同包名相同類名的文件時抛腕,我們需要手動解決這個沖突芋绸,具體實(shí)現(xiàn)方法為將Jar包重命名為zip文件并解壓。
找到對應(yīng)沖突的文件担敌,刪除沖突的文件摔敛,保證兩個Jar包中相同包名與相同類名的文件只能存在一個,刪除沖突文件后全封,對文件進(jìn)行重新打包马昙。
使用cmd進(jìn)入文件路徑:
jar cvf after_delete.jar .
命令執(zhí)行完成,在執(zhí)行目錄會發(fā)現(xiàn)手動解決沖突的Jar包刹悴,使用新Jar包重新打包即可解決打包沖突問題行楞。