Android手动打包:jar某目录下存在两个同名(不区分大小写)class文件,解压后如何再打包回dex

问题:由于手动打包成apk,某个jar文件需要修改(删除、添加),因此把它解压出来,但是windows不区分大小写,jar里同目录下只有大小写区分的同名class文件,后解压的会覆盖前面的,在生成dex文件的时候会报错:

com.android.dx.cf.iface.ParseException: class name (com/abc/f/j) does not match path (com/abc/f/J.class)

解决办法:把jar文件里的同名文件分别解压到不同的目录,然后在生成dex的时候,把这些目录都加入进来,生成的dex里就包含了所有的文件;


为什么jar文件里会有仅大小写不一样的同名class文件呢?

主要都是因为在class文件比较多的情况下混淆的时候生成的,一般不会人为创建;为了不生成只有大小写区分的同名文件,在混淆的时候可在obsfucation这一步选项中,去掉“Use Mixed-case class names”前面的对号,详情可参考http://blog.csdn.net/qysh123/article/details/18048969;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值