1. 程式人生 > >jar包混淆

jar包混淆

兼容 官網 打包 proguard 3.1 導出 項目 使用 導入項目

最近需要對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已經停止維護了。

jar包混淆