Jar包冲突解决,重命名Jar包

目录

1. 下载 jarjar第三方工具,并创建执行命令的txt文件

 2. 打开rule.txt文件,写入命令:

3.打开命令行,cd到你的文件夹路径

4. 类似于QQ这种的短包名jar包需要特殊处理


1. 下载 jarjar第三方工具,并创建执行命令的txt文件

百度网盘下载地址【链接:pan.baidu.com/s/1cSHblh26… 提取码:3buv】。下载完成后,将需要更改包名的jar包和jarjar-1.4.jar放在同一个文件夹下(我建的文件夹wechat)。在该文件夹下新建一个txt文件,我这里取名 rule.txt. 我这里使用解决微信资源jar包冲突作为示例.

 2. 打开rule.txt文件,写入命令:

rule com.tencent.mm.opensdk.** com.test.wechatsdk.@1

  • "com.tencent.mm.opensdk"是解决冲突jar包的包名路径;
  • "com.test.wechatsdk" 是新的jar包包名;

3.打开命令行,cd到你的文件夹路径

命令行输入 cd 然后把你的文件夹直接往命令行拖动就会出现他的路径:

输完上面的命令之后点击回车,然后输入执行重命名的命令,等待新的jar包生成即可.

java -jar jarjar-1.4.jar process rule.txt wechat-sdk-android-without-mta-6.8.0.jar wechat-sdk.jar
  • 命令中注意替换 rule.txt  就是第一步你创建的文件;
  • wechat-sdk-android-without-mta-6.8.0.jar 是你要重命名包名的Jar包.
  • wechat-sdk.jar 是你重新命名包名之后的Jar包名称.

然后反编译看下jar包,包名路径已修改,到此就大功告成了.

4. 类似于QQ这种的短包名jar包需要特殊处理

        QQ的jar包路径是 com.tencent.** ,如果这样替换就会把jar包中所有包含 com.tentcent的地方全部替换掉,你调用QQ的功能就会出无效,如下图有些包名是和QQ互通的,替换成你自定义的包名QQ功能肯定调不起来.

         正确做法应该是把rule.txt文件中原来的命令行更改成挨个文件夹替换.

rule com.tencent.connect.** com.test.qqsdk.connect.@1 
rule com.tencent.open.** com.test.qqsdk.open.@1 
rule com.tencent.tauth.** com.test.qqsdk.tauth.@1 
rule com.tencent.a.a.** com.test.qqsdk.a.a.@1 

Supongo que te gusta

Origin blog.csdn.net/zhao8856234/article/details/127256554
Recomendado
Clasificación