android 混淆 去除第三方jar

编译与反编译,一对相辅相成的矛盾。反编译有时候会和不光彩的事情联系在一起,以致于编译者常常费劲心思,加大反编译的难度,比如采用混淆代码等方式。proguard正是这么一个工具:

<blockquote>theproguardtoolshrinks,optimizes,andobfuscatesyourcodebyremovingunusedcodeandrenamingclasses,fields,andmethodswithsemanticallyobscurename.

</blockquote>androidsdk整合了proguard,并在文档中用了一个章节来描述如何使用它。依照文档来实施,多半没有问题,不过在使用中有时候遇到了一些问题:(就是提示一些包找不到)

依照以往的惯例,发生warning,可忽视之,只有看到error,才会小紧张一把。不过这次的warning导致了buildfailed,这回问题大了。

按照提示,在proguard.cfg里,加入<code>-dontskipnonpubliclibraryclasses</code>,再试,还是有问题。

那就到官网找找答案吧,manual->troubleshooting->“warning:can’tfindreferencedclass”,找到这么一句话:<q>tryyourluckwiththe-ignorewarningsoption,oreventhe-dontwarnoption.</q>再对比日志信息,发现:<br><samp><br>[proguard]warning:net.poemcode.digest:can’tfindreferencedclassorg.apache.castleprovider<br></samp>

打开proguard.cfg,加入<code>-dontwarnnet.poemcode.**</code>,在打包一次。'

附件是default.properties和proguard.cfg文件

相关推荐