安卓Jar包冲突解决方案

前言

在安卓项目开发过程中,我们免不了会接触三方SDK的引用开发,比较常见的SDK有基于地图的高德地图SDK,基于社会化分享的友盟统计SDK,以及基于Bug日志获取的腾讯Bugly SDK等。由于不同的SDK开发方不同,所以经常性的会引入Jar包冲突无法打包的问题,如果是三方SDK引用了本地已经使用的Jar包,我们将冲突的Jar删除即可,如果是两个三方SDK引用了相同Jar包,我们则需要对SDK进行一些特殊处理。

打包异常

安卓Jar包冲突解决方案_第1张图片
zipException.png

如图所示,在工程进行APK打包的时候报了一个ZipException,出现这个异常的原因在于两个Jar包中使用了想同包名相同类名的文件,导致程序不知道该使用哪一个类文件。


安卓Jar包冲突解决方案_第2张图片
冲突Jar包(1).png

安卓Jar包冲突解决方案_第3张图片
冲突Jar包(2).png

解决方案

当两个三方SDK使用相同包名相同类名的文件时,我们需要手动解决这个冲突,具体实现方法为将Jar包重命名为zip文件并解压。


重命名zip.png

找到对应冲突的文件,删除冲突的文件,保证两个Jar包中相同包名与相同类名的文件只能存在一个,删除冲突文件后,对文件进行重新打包。
使用cmd进入文件路径:


安卓Jar包冲突解决方案_第4张图片
cmd指令.png
jar cvf after_delete.jar .
安卓Jar包冲突解决方案_第5张图片
打包Jar包.png

命令执行完成,在执行目录会发现手动解决冲突的Jar包,使用新Jar包重新打包即可解决打包冲突问题。

你可能感兴趣的:(安卓Jar包冲突解决方案)