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,如需轉載請自行聯系原作者