1.使用proguardgui混淆器对jar包进行混淆,出现EXCEPTION FROM SIMULATION错误:
解决方法:在配置文件中去掉-keepattributes LocalVariable*Table这个配置项。
2.引用库正常,对库的代码打成jar包混淆后运行报错Unable to execute dex: Multiple dex files define:
解决方法:项目引用了不同版本的jar包导致的,如果libs中的jar包版本都是一致的,那么问题可能出现在使用proguradgui时引入的jar包版本不一致导致的。也就是在混淆过程中,引入的jar包要与项目中使用的jar文件一致。
3.在你依赖的外部jar包已经混淆的情况下再进行混淆打包有可能出现以下情况:
Can't read [***\***.jar] (Can't process class [**/a/f.class] (Unknown verification type [108] in stack map frame))
解决方法:找到proguard源码中proguard\src\proguard\classfile\ClassConstants.java类,然后修改ATTR_StackMapTable的值,将原来的的StackMapTable改为dummy.
然后重新ant打包proguard,使用新的proguard来混淆就不会出现上面的问题。
参考资料:
本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1435941,如需转载请自行联系原作者