到proguard官网上下载源码,修改源码中src->proguard->classfile中得ClassConstants.java文件
把文件中第151行中得ATTR_StackMap属性StackMap修改为dummp。保存,然后就可以开始重新编译为jar做准备了
重新编译可以使用多种方式,我这里使用ant进行重新编译,具体我就不多说,可以参考这篇blog,里面有ant的配置和使用http://glblong.blog.51cto.com/3058613/1536516。
重新编译完后,我们就可以使用了。如果你使用的是eclipse,代码混淆使用的是sdk里的jar。大家可以替换sdk下的tools的groguard.jar(大伙别介意,我用的是mac,所以就没有列表具体路径,只是做个截图供大家参考)
如果你使用的是Android studio,studio的话,默认会使用它自带的proguard插件,所以替换sdk的jar是无效的,依然会提示这个错误,所以你有两种选择:1.更改你的studio里proguard插件的路径(这个我也不知道哪里改,如果你知道的话请告诉我一声);2.替换你的studio里的proguard.jar(路径如下图)
#报错:Warning: Exception while processing task java.io.IOException: Can't read
[/Users/apple/code/ProMulti/app/E]
(No such file or directory)
#-libraryjars E:\software\jdk\jre\lib\rt.jar
注释了就可以了
是因为原来我是在windows的,现在切换到mac,路径没改,所以没找到文件