【Android】jar包Proguard混淆方法
本文章的前提条件是,读者已经掌握了正确导出jar包的技能。
1、拷贝Android项目中“proguard.cfg”文件到你指定的位置,并改名为“proguard.pro”,此步是为proguardgui应用做前期的配置。
2、在android开发sdk相应的目录下找到proguardgui启动入口,mac os上的路径如下
“/Users/jayhomzhou/IDE/Android/adt-bundle-mac/sdk/tools/proguard/bin”
通过"终端"启动proguardgui

3、加载“1”中的"proguard.pro"配置文件

4、配置需要混淆的jar包,需要注意的是上部分是可以把多个jar包混淆输出成一个jar包,下半部分为混淆时所需的依赖jar包。

5、配置那些内容在混淆时忽略的,这里我选择了“Library”和“Enumeration”。

6、需要特别注意红框的选项,勾选后混淆出来的jar包有时导致在主项目中使用时报错:“conversion to dalvik format failedwith error 1”。

7、Optimization界面

8、红框1,正确选择target下拉框对应的jdk版本,否则可能出现异常错误。红框2,编译时如果遇到未找到定义的警告,那么在这里添加需要忽略的内容,详细看后面的步骤。

9、点击红框的按钮后,界面出现对上面一系列配置进行的汇总,此时最好进行保存(红框版本的按钮)。保存后的文件为.pro后缀,可以使用编辑软件进行对其作修改(必须按照proguard规范进行),再按照上述步骤进行重新加载。到这里一起工作已经就绪,那么点击“Process”开始混淆吧!(遇到警告或错误停止混淆,请使用“-dontwarn”进行屏蔽处理)。祝你好运,一切顺利,哈哈。

文章转载,版权归原作者所有,尊重版权,支持原创
【Android】jar包Proguard混淆方法的更多相关文章
- Android动态载入JAR包的实现方法
有时候我们须要使用动态更新技术,简单来说就是:当我们把开发jar包发送给用户后.假设后期升级了部分代码.这时让用户的jar包自己主动更新,而不是用户主动手动地去更新的技术就是动态更新.这个须要使用的技 ...
- 日积月累:ProguardGui进行jar包代码混淆
前面文章<Proguard进行源代码混淆>讲解过怎么使用Proguard工具对Android的源代码进行混淆的方法(感兴趣的朋友可以访问:http://blog.csdn.net/p106 ...
- jar包冲突排解方法(sbt)
jar包依赖冲突,版本不兼容会导致各种各样的问题.这里推荐一款sbt插件用于查找项目中的jar包依赖关系,通过该插件可以轻松的看出某个jar包依赖哪些jar,以及某个jar被哪些jar所依赖.此外该插 ...
- 【Maven】【IDEA】在idea中开发web项目,解决maven的jar包冲突的方法
在idea中开发web项目,解决maven的jar包冲突的方法 第一步: 先对项目进行 clean ,再进行install 第二步: 出现NoSuchMethodException,ClassNotF ...
- Eclipse笔记-sun.misc.BASE64Encoder找不到jar包的解决方法
从SVN检出新项目,在Eclipse中报错如下: 转: Eclipse笔记-sun.misc.BASE64Encoder找不到jar包的解决方法 2018-01-04 00:36:20 雨临Lewis ...
- 混淆Android JAR包的方法
http://blog.csdn.net/vurtne_ye/article/details/35599491 1)导出jar包 如何在eclipse上Android工程中导出jar包?google, ...
- Android Studio导出Jar包并混淆
在Android Studio中,自带反编译查看class文件,如果没有混淆的话,class文件跟java文件基本没有区别了,为了保护,还是混淆的好. 网上看了不少资料,都是直接下载proguard额 ...
- Android jar包混淆
具体可参考http://proguard.sourceforge.net/manual/examples.html#library 1.找到android的adt目录下的 D:\soft\adt-bu ...
- android studio gradle 打jar 包 (混淆+第三方库包)
将依赖的第三方库打包进自己的jar包 1.先将第三方的库包拿到,然后添加jar包到项目的libs. 2.项目的build.gradle脚本添加下面的task: task buildJar(depend ...
随机推荐
- URLConnection和HttpURLConnection
URLConnection和HttpURLConnection使用的都是java.net中的类,属于标准的java接口. HttpURLConnection继承自URLConnection,差别在与H ...
- python beautifulsoup爬虫学习
BeautifulSoup(page_html, "lxml").select(),这里可以通过浏览器开发者模式选择copy selector,并且并不需要完整路径. github ...
- POJ 1659
题意: 给你一个数列, 判断是否可以构成一个图, 可以则输出 构成图的一种方式 构图根据 Havel-Hakimi定理来构图 (在排序的时候注意 节点下标会变化, 故用结构体) #include< ...
- Windows上的程序员神器Cmder
用过Windows版本Git的都知道Git自带了Git Bash,这个在很大程度上满足了我的需求,随着Git的版本升级越来越好用 安装Cmder Cmder官网,它把conemu,msysgit和cl ...
- Codeforces 1107G Vasya and Maximum Profit [单调栈]
洛谷 Codeforces 我竟然能在有生之年踩标算. 思路 首先考虑暴力:枚举左右端点直接计算. 考虑记录\(sum_x=\sum_{i=1}^x c_i\),设选\([l,r]\)时那个奇怪东西的 ...
- hbase搭建
0. 软件版本下载 http://mirror.bit.edu.cn/apache/hbase/ 1. 集群环境 Master 172.16.11.97 Slave1 172.16.11.98 S ...
- HTML阻止冒泡事件的发生
阻止事件冒泡函数(低级标签的点击事件触发后,上级标签的点击事件再触发,此函数就是防止冒泡事件发生) function stopEventBubble(event){ var e=event || wi ...
- 用sqlplus为oracle创建用户和表空间
用Oracle自带的企业管理器或PL/SQL图形化的方法创建表空间和用户以及分配权限是相对比较简单的, 本文要介绍的是另一种方法就是使用Oracle所带的命令行工具SQLPLUS来创建表空间. 打开S ...
- Markdown 简介及基础语法
一.Markdown 简介 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 二.Markdown 基础语法 1. Markdown ...
- Oracle从入门到精通(详细) 明日科技