android 混淆 去除第三方jar

編譯與反編譯,一對相輔相成的矛盾。反編譯有時候會和不光彩的事情聯繫在一塊兒,以至於編譯者經常費勁心思,加大反編譯的難度,好比採用混淆代碼等方式。ProGuard正是這麼一個工具:apache

  The ProGuard tool shrinks, optimizes, and obfuscates your code by removing unused code and renaming classes, fields, and methods with semantically obscure name.ide

  Android SDK整合了ProGuard,並在文檔中用了一個章節來描述如何使用它。依照文檔來實施,多半沒有問題,不過在使用中有時候遇到了一些問題:(就是提示一些包找不到)工具

  依照以往的慣例,發生warning,可忽視之,只有看到error,纔會小緊張一把。不過此次的warning致使了BUILD FAILED,這回問題大了。日誌

  按照提示,在proguard.cfg裏,加入-dontskipnonpubliclibraryclasses,再試,仍是有問題。code

  那就到官網找找答案吧,Manual -> Troubleshooting -> 「Warning: can’t find referenced class」,找到這麼一句話:try your luck with the -ignorewarnings option, or even the -dontwarn option.再對比日誌信息,發現:ip

  [proguard] Warning: net.poemcode.Digest: can’t find referenced class org.apache.CastleProviderrem

  打開proguard.cfg,加入-dontwarn net.poemcode.**,(即在文件中加入:-dontwarn packagename.**)再打包一次。文檔

相關文章
相關標籤/搜索