转载自:http://glblong.blog.51cto.com/3058613/1536516

一、ant安装、环境变量配置及验证

(一)安装ant

到官方主页http://ant.apache.org下载新版(目前为Ant1.9.4)的ant,得到的是一个apache-ant-1.9.4-bin.zip的压缩包。将其解压到你的硬盘上,例如:C:\apache-ant-1.9.4。

(二)配置环境变量

window中设置ant环境变量:

ANT_HOME    C:/ apache-ant-1.9.4

path             C:/ apache-ant-1.9.4/bin

classpath      C:/apache-ant-1.9.4/lib

注意:

配置环境变量:我的电脑----属性-----高级----环境变量

如:ANT_HOME:C:\apache-ant-1.9.4

PATH:%ANT_HOME%\bin (为了方便在dos环境下操作)

实验了总是失败,没办法换成地址 C:/ apache-ant-1.8.1/bin,而不再使用变量。。。成功了。。

(三)验证ant

为了验证ant是否成功安装,可以进行如下操作:

依次选择:开始->运行->cmd,输入如下命令:ant

如果出现如下内容,说明安装成功:

Buildfile: build.xml does not exist!

Build failed

【说明ant安装成功!因为ant默认运行build.xml文件,这个文件需要我们建立。】

二、运行ant打包proguard

cmd进入proguard目录下的build.xml所在目录,如我的:

D:\Program Files\adt-bundle-windows-x86_64-20130729\sdk\tools\proguard\build

然后运行ant便会在lib目录下重新生成新的的proguard.jar文件。

如何不混淆第三方jar包

今天遇到了一个混淆的问题,怎么用语法解决都不行

看了下错误日志:发现是在proguard读取jar包里的类的时候,有个类导致了java I.O异常

由于是第三方的包,于是就去跟第三方沟通了。

结果第三方也无法解决。

这个时候我本来的思路是重新修改proguard的源代码,在读取到这个有问题的jar包时跳过,并且直接编译一个自定义的版本。

做到一半的时候被老大点醒了,于是想到之前的另一种方法:这种方法还是我先试过的,真是惭愧。

当你怎么-keep 第三方jar包都没有用的时候,参考一下下面方法:

1,拿一个未混淆的包,对其反编译,在反编译出来的smali文件中,找到第三方jar包的路径:

D:\JianTiLianYun\baidupacker\temp\smali\com\zhangyue\util

这是我的一个路径,然后把出问题的包的smali文件全拷贝了;

2,对你原来的包进行混淆,可这时混淆失败怎么办呢?

直接打开jar包,将出问题的类删除掉,然后rebuild一下项目,再混淆;

如果是整个JAR包,且这些jar包被代码使用了,不能随意删。

那这个时候,理论上可以手动引用该jar包(不要放在lib文件夹中),

在android studio中,需要在项目设置里将dependency中的改jar包的scope改为provided,如果是compiled还是会报混淆错误。

然后,混淆成功!

3,将混淆成功的apk反编译,手动加入第一步中获取到的smali文件,再重新打包。

这时候发现程序正常运行!

最新文章

  1. meta标签
  2. 9.Configure One-to-One(配置一对一关系)【Code-First系列】
  3. 乐1S 5.8(Android 6.0) 刷第三方recovery并刷入root权限
  4. Apizza可以进行本地调试,也可以进行跨域调试,但是需要chrome插件
  5. POJ 2480 (约数+欧拉函数)
  6. [转载]How To Add Swap on Ubuntu 12.04
  7. HttpWebRequest和HttpWebResponse
  8. Python OS模块标准库的系统接口及操作方法
  9. 《JAVA程序设计》第10周学习总结
  10. CSRF攻击【转载】
  11. 进程初识和multiprocessing模块之Process
  12. mysql 将行拼接成字符串的方法
  13. Netty 源码 Channel(二)核心类
  14. 字符串方法 split() & replace()
  15. 基于pandas python的美团某商家的评论销售(数据分析)
  16. POJ 2513 字典树+并查集+欧拉路径
  17. 《杜增强讲Unity之Tanks坦克大战》8-子弹碰撞处理
  18. 【高级】PHP-FPM和Nginx的通信机制
  19. [Erlang12] Mnesia分布式应用
  20. 数据治理(Data Governance)

热门文章

  1. SQL Server - 把星期一(周一)当作每个星期的开始在一年中求取周数
  2. 关于easyUI的模态对话框
  3. SignalR入门之基本介绍
  4. 背水一战 Windows 10 (7) - 控件 UI: VisualState, VisualStateManager, 控件的默认 UI
  5. MySQL知识总结
  6. 怎样给Eclipse添加一个Xml模板
  7. mysql乱码解决
  8. PHP内核探索之变量(6)- 后续内核探索系列大纲备忘
  9. 更新整理本人所有博文中提供的代码与工具(Java,2013.10)
  10. sql2012还原sql2008备份文件语句