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

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

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

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

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

  那就到官网找找答案吧,Manual -> Troubleshooting -> “Warning: can’t find referenced class”,找到这么一句话:try your luck with the -ignorewarnings option, or even the -dontwarn option.再对比日志信息,发现:

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

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

更多相关文章

  1. Android 利用PdfDocument产生PDF文档
  2. android service 英文文档解析
  3. android 保存配置文档
  4. Android学习之Activity生命周期文档翻译
  5. android文档开发规范

随机推荐

  1. 阿里字体图标使用写法与响应式代码
  2. 伪类选择器,盒模型属性
  3. 1、实例演示伪类选择器: 结构伪类与状态
  4. css伪类选择器和盒模型
  5. 7.4——常用标签与应用场景之表格与单元
  6. 伪类选择器-结构伪类、根据位置选择匹配
  7. 伪类选择器与盒模型常用属性
  8. CSS之伪类选择器和简单盒子简单案例
  9. Android中不规则形状View的布局实现
  10. [随便写写]Android基础教程