给Android第三方库中的jar包重打包

Android AUmaWSsSoi 12个月前 (06-05) 170次浏览 0个评论
文章目录[隐藏]

给Android第三方库中的jar包重打包

这个同样适用于Java项目中,写这篇文章的起因是,在现实开发过程中,会碰到第三方厂商给的jar包存在一些小问题,或者是部分地方有crash,或者是部分地方无法自定义,让对方立即修复给个bugfix的版本得等很久,费口舌之力,还不如反编译jar包,研究下jar包内部代码的实现机制,针对性的做处理,这篇是以融云sdk的某个版本的crash为例来描述,几个月前升级了融云的sdk,结果线上crash几千次,很是无语,这个让融云修改后,可惜也没有要到修改后的jar包,产生了自己fix掉这个crash的想法,思路很清晰,先删掉crash所在的类,idea默认是可以反编译出class文件的,把反编译后的java代码复制一份保存下来,解压jar包,删掉crash类,然后重打包,在工程里面新建一个融云crash类的目录,把保存的java代码复制进去,修复掉crash的逻辑。完美解决问题。

那么这里说一下,如何操作jar包。

第一步,将jar包后缀改为zip,使用普通的解压软甲解压,删掉crash类相关的class文件

第二步,重新打包,关键命令是,jar -cvf Rong_IMKit.jar .      Rong_IMKit.jar指的是打成jar后的jar的名称, . 代表的是当前目录,这点可以查询相关资料

资料参考

关于java打jar包的文章可以参考 https://www.cnblogs.com/mq0036/p/8566427.html


java问与答 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:http://javaexception.com/archives/117
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址