最近需要对jar包进行混淆,对于第一次混淆jar的人来说坑挺多的。先说遇到的坑,之前用eclipse打包jar挺方便的就一直没有更换。导出后使用Android SDK中带的proguardgui混淆(目录\Sdk\tools\proguard\bin\proguardgui.bat)使用流程网上挺多的。但是由于proguardgui不支持jdk8下的rt.jar.只能去找到官网已经下线的jdk7。混淆成功后导入项目后运行居然报Return code 1 for dex process的错误。对于这个错误网上的解决办法是内部类或一个包下的类超过26个。修改后也不见效果。根据这个错误的意思为dex转class出错。我猜测是jdk7下的rt.java的版本适应造成的,比较proguardgui不兼容jdk8。只能抛弃eclipse使用Android studio。使用Android studio时重点在于找到moudle编译生成的classes.jar(不同Android studio下Classes.jar位置不同,网上大部分都是在build/intermediates/bundles/default/,而我使用的3.1在build/intermediates/packaged-classes/release/
),使用混淆比较简单将buildTypes下的minifyEnabled改为ture再编写proguard-rules.pro就可混淆成功了。
总结:Android studio功能还是强大很多,注意是proguardgui已经停止维护了。