安卓Jar包修改及重编译

场景:

org.seamless:seamless-xml 库遇到一个源码报错:
org.xml.sax.SAXNotRecognizedException: http://apache.org/xml/features/disallow-doctype-decl
gradle依赖解不了咋办?,只能去下载了对应版本的jar包,改报错点了。

SAXParser 类 这个地方加个try catch
在这里插入图片描述

1,拿到jar包放入桌面 C:\Users\cjx\Desktop\jar 下

2,使用jd-gui.exe 打开jar包
在这里插入图片描述
3,这里修改SAXParser.class文件 ,选中,file—》save 另存到jar路径下
在这里插入图片描述
4,可以把该文件在AndroidStudio中打开,修改,修改后执行以下命令把Java文件重新编译成SAXParser.class文件,上图中CatalogResourceResolver.java,ParserException.java文件在SAXParser.java中被引用,所以一起拷过来,不然会报错
执行:

javac *java

编译当前文件夹内所有的Java文件
在这里插入图片描述
javac 提示不是内部命令的 环境变量path配置如下:
在这里插入图片描述
5,打包生成class文件后,修改的文件相关class文件都是需要的,如下红框
在这里插入图片描述
6,C:\Users\cjx\Desktop\jar\ 路径下新建一个jar ,把seamless-xml-1.1.2.jar拷贝进去
cmd在此处打开执行:

jar -xvf seamless-xml-1.1.2.jar

会解压jar包,得到源码
在这里插入图片描述
7,拷贝第五步生成的class文件替换源码下class ,删掉seamless-xml-1.1.2.jar ,待会生成同名的jar
在这里插入图片描述

8,执行命令生成seamless-xml-1.1.2.jar

jar -cvf seamless-xml-1.1.2.jar ./

在这里插入图片描述
9,seamless-xml-1.1.2.jar生成后需要刷新配置文件
执行
jar umf META-INF/MANIFEST.MF seamless-xml-1.1.2.jar
在这里插入图片描述
大功告成,生成的jar就可以替换原来的jar使用了!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值