編譯與反編譯,一對相輔相成的矛盾。反編譯有時候會和不光彩的事情聯系在一起,以致于編譯者常常費勁心思,加大反編譯的難度,比如采用混淆代碼等方式。proguard正是這么一個工具:
<blockquote>the proguard tool shrinks, optimizes, and obfuscates your code by removing unused code and renaming classes, fields, and methods with semantically obscure name.
</blockquote>android sdk整合了proguard,并在文檔中用了一個章節來描述如何使用它。依照文檔來實施,多半沒有問題,不過在使用中有時候遇到了一些問題:(就是提示一些包找不到)初一下學期英語語法重點指南
依照以往的慣例,發生warning,可忽視之,只有看到error,才會小緊張一把。不過這次的warning導致了build failed,這回問題大了。
按照提示,在proguard.cfg里,加入<code>-dontskipnonpubliclibraryclasses</code>,再試,還是有問題。
那就到官網找找答案吧,manual -> troubleshooting -> “warning: can’t find referenced class”,找到這么一句話:<q>try your luck with the -ignorewarnings option, or even the -dontwarn option.</q>再對比日志信息,發現:<br><samp><br>[proguard] warning: net.poemcode.digest: can’t find referenced class org.apache.castleprovider<br></samp>
打開proguard.cfg,加入<code>-dontwarn net.poemcode.**</code>,在打包一次。'struts中tiles的高級使用 | Java-JavaScript
附件是default.properties和proguard.cfg 文件
<blockquote>the proguard tool shrinks, optimizes, and obfuscates your code by removing unused code and renaming classes, fields, and methods with semantically obscure name.
</blockquote>android sdk整合了proguard,并在文檔中用了一個章節來描述如何使用它。依照文檔來實施,多半沒有問題,不過在使用中有時候遇到了一些問題:(就是提示一些包找不到)初一下學期英語語法重點指南
依照以往的慣例,發生warning,可忽視之,只有看到error,才會小緊張一把。不過這次的warning導致了build failed,這回問題大了。
按照提示,在proguard.cfg里,加入<code>-dontskipnonpubliclibraryclasses</code>,再試,還是有問題。
那就到官網找找答案吧,manual -> troubleshooting -> “warning: can’t find referenced class”,找到這么一句話:<q>try your luck with the -ignorewarnings option, or even the -dontwarn option.</q>再對比日志信息,發現:<br><samp><br>[proguard] warning: net.poemcode.digest: can’t find referenced class org.apache.castleprovider<br></samp>
打開proguard.cfg,加入<code>-dontwarn net.poemcode.**</code>,在打包一次。'struts中tiles的高級使用 | Java-JavaScript
附件是default.properties和proguard.cfg 文件