问题:由于手动打包成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.youkuaiyun.com/qysh123/article/details/18048969;
本文详细介绍了在使用apk打包过程中遇到jar文件中存在仅大小写不同的同名class文件导致生成dex文件出错的问题,并提供了通过将文件解压到不同目录并在生成dex时包含这些目录的解决方案,有效避免了此类错误。
739

被折叠的 条评论
为什么被折叠?



