博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码混淆遇到的问题
阅读量:5059 次
发布时间:2019-06-12

本文共 1826 字,大约阅读时间需要 6 分钟。

代码混淆 在java 里面是一个重要的保护代码手段之一

之前用 ant 打包 

今天试了用 proguard来打包 

因为我的项目要用到 

httpclient 包 

开始导入时会出现一大堆警告 然后就不能输入程序 

此时应在proguard.cfg文件中添加 -ignorewarnings 隐藏所有警告

当程序跑起来后 一遇到有调用 httpclient 时就会报错  说找不到 源码

我知道这是代码混淆后的问题 查了 proguard官网

原来 proguard 会优化你的代码 将不必要的代码删除 

如果你要保留 则需要设置相应的 规则

如我上面引入了 三个包

所以要为每个包保留 不进行混淆操作

1 -keep public class org.apache.commons.logging.** { public protected *;} 2 -keep public class org.apache.commons.logging.impl.** { public protected *;} 3  4 -keep public class org.apache.commons.httpclient.** {
public protected *;} 5 -keep public class org.apache.commons.httpclient.auth.** {
public protected *;} 6 -keep public class org.apache.commons.httpclient.cookie.** {
public protected *;} 7 -keep public class org.apache.commons.httpclient.methods.** {
public protected *;} 8 -keep public class org.apache.commons.httpclient.params.** {
public protected *;} 9 -keep public class org.apache.commons.httpclient.protocol.** {
public protected *;}10 -keep public class org.apache.commons.httpclient.util.** {
public protected *;}11 12 -keep public class org.apache.commons.codec.** {
public protected *;}13 -keep public class org.apache.commons.codec.binary.** {
public protected *;}14 -keep public class org.apache.commons.codec.digest.** {
public protected *;}15 -keep public class org.apache.commons.codec.language.** {
public protected *;}16 -keep public class org.apache.commons.codec.net.** {
public protected *;}

后面二行可选的

1 -keep public class com.google.gdata.util.common.base.** { public protected *; }2 3 4 -keep public class android.** { public protected private *; }

 

如此程序便可正常运行

另外 集成在 SDK 中的proguard太旧直接使用会有很多问题 只要你从官网下载最新版本便会解决问题 到目前为止最新版为 4.8

复盖 bin lib 文件夹就可以了

欢迎各位同学加入 android 技术群 155595043

个人微博: 

有问题可以微博商讨

转载于:https://www.cnblogs.com/ondream/archive/2012/04/13/2445468.html

你可能感兴趣的文章
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
HEVC播放器出炉,迅雷看看支持H.265
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
java学习笔记之String类
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
jdk从1.8降到jdk1.7失败
查看>>
一些关于IO流的问题
查看>>
mongo备份操作
查看>>
8 -- 深入使用Spring -- 3...1 Resource实现类InputStreamResource、ByteArrayResource
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
一个关于vue+mysql+express的全栈项目(六)------ 聊天模型的设计
查看>>
【知识库】-数据库_MySQL 的七种 join
查看>>
.net 写文件上传下载webservice
查看>>
noSQL数据库相关软件介绍(大数据存储时候,必须使用)
查看>>
iOS开发——缩放图片
查看>>