jar包冲突解决方法,解决jar与jar冲突,jar与aar冲突,不想删除任何一个包,只能修改其中一个jar包包名即可解决

时间:2024-05-19 10:06:25

问题来源:接入两个广告商出现包名冲突,一个是aar,另一个是jar,提示语jar包冲突解决方法,解决jar与jar冲突,jar与aar冲突,不想删除任何一个包,只能修改其中一个jar包包名即可解决

检查后发现kj_sdk_1.1.0.jar和hmsdk.aar里面都有一个com.a.a.a.class的类冲突了。捣腾半天无法解决,各种冲突法子都尝试过。本身想让这两个广告商其中一个改一下jar包,最终通过高人指点去改hmsdk.aar里面冲突的包名,在此记录。

如若是jar和jar的冲突可忽略步骤1

步骤1:把hmsdk.aar文件改成hmsdk.zip,解压后如下图所示,可看到classes.jar,这里面就包含着冲突的类。

jar包冲突解决方法,解决jar与jar冲突,jar与aar冲突,不想删除任何一个包,只能修改其中一个jar包包名即可解决

步骤2:即classes.jar和kj_sdk_1.1.0.jar冲突。(到这一步就是把aar和jar冲突转化成jar和jar的冲突。)

(1)我本地已经有jarjar-1.4.jar,则直接使用。没有的首先下载个工具jarjar.jar,下载地址

https://download.****.net/download/zaq977684/12354348

(2)将jarjar-1.4.jar和classes.jar单独放到我在D盘创建了一个hmsdk_chang_jar文件下,如图:

jar包冲突解决方法,解决jar与jar冲突,jar与aar冲突,不想删除任何一个包,只能修改其中一个jar包包名即可解决

(3)创建一个rule.txt文件:

写入 rule com.a.**  [email protected]     后关闭rule.txt文件

jar包冲突解决方法,解决jar与jar冲突,jar与aar冲突,不想删除任何一个包,只能修改其中一个jar包包名即可解决

意思为com.a都转成con.hmbol1的包名,只改前面的二级com.a,当然你也可根据需求多改几级

(4)在cmd中输入命令改包名,打开cmd。

         1)  d:        (备注:我文件创建在d盘。则需输入d:  若为其他盘相对应输入字母)

         2)  cd D:\hmsdk_chang_jar       (备注:cd后面跟着你需要改的jar包的路径。我要改的classes.jar和jarjar-1.4.jar的路径是D:\hmsdk_chang_jar)

        3)  java -jar jarjar-1.4.jar process rule.text classes.jar output.jar      (备注  java -jar 下载下来的工具jar包  process 创建更改包名的txt  需要修改的jar 包名修改后的jar)

     若成功的执行以上三个命令后 D:\hmsdk_chang_jar文件下就会出现output.jar。

     到此jar和jar的包名冲突已解决完毕

jar包冲突解决方法,解决jar与jar冲突,jar与aar冲突,不想删除任何一个包,只能修改其中一个jar包包名即可解决

 

验证是否更改成功的方法,可以创建两个文件夹,修改前的包存放classes.jar,修改后的包存放output.jar

分别对两个jar进行解压。如下图所示,则修改成功

jar包冲突解决方法,解决jar与jar冲突,jar与aar冲突,不想删除任何一个包,只能修改其中一个jar包包名即可解决

 

步骤3:把output.jar重新命名为classes.jar。把步骤1中hmsdk.zip解压出来的文件夹中的classes.jar替换掉。这一步是修改包名后的jar替换修改前的jar。

选中所有文件右键选择添加到压缩文件夹   jar包冲突解决方法,解决jar与jar冲突,jar与aar冲突,不想删除任何一个包,只能修改其中一个jar包包名即可解决

注意:选中的文件格式一定是zip的。如下图所示:

jar包冲突解决方法,解决jar与jar冲突,jar与aar冲突,不想删除任何一个包,只能修改其中一个jar包包名即可解决

得到一个压缩文件hmsdk.zip,再把hmsdk.zip的后缀名改成aar,即hmsdk.aar。最终得到的hmsdk.aar替换掉冲突的hmsdk.aar文件,问题得以解决。

本人耗时比较长的是步骤3,文件的压缩格式为rar改成aar,android  studio识别不了aar文件,所以格式一定要注意是ZIP