proguard 混淆jar包 ,提供给第三方使用

本地生成jar包,供给第三方引入使用,要求混淆一下代码。

使用proguard工具,遇到不少问题 记录一下,耗时两天混淆成功。

Proguard可通过  :ProGuard32位与64位汉化版.zip-Java文档类资源-CSDN下载java混淆工具更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/QTT_CSDN/56737544最开始本地生成jar时,将所有依赖包一起打进去了

然后添加输入、输出,下方添加依赖包;在信息界面选择jdk 1.8

 

 

 其他配置基本默认,开始混淆,最后错误提示如下:

出现一批警告,根据提示在配置文件加 (去掉警告)

-dontwarn

再次处理错误解决。经对比-dontwarn 对应Proguard工具界面操作,取消勾选如下红框

插一句:最开始我也不知道怎么修改配置文件及加载,审核界面右下角可以查看配置及保存配置,将配置保存到本地,xx.pro   可以用文本打开 修改配置文件,然后在proguard首页右下角加载配置,选择xx.pro文件,根据内容界面会自动勾选。

将此混淆的jar在本地运行报错 

一顿百度,意思是把依赖包也混淆了,后来就开始保持依赖包不太混淆,添加配置

-keep,allowshrinking class com.alibaba.** {
    <fields>;
    <methods>;
}

-keep,allowshrinking class xxx.** {
    <fields>;
    <methods>;
}

 {}里面就是参数、方法也保持不被混淆 ,对比Proguard界面操作

 进行混淆 运行测试,还是报错,(记得也是报上面的错误)又是一顿度娘 一顿尝试,错误尝试就不贴了,意识到jar打的是不是有问题,然后又打了个不包含依赖包的版本

 

重新输入jar包,第一次忘记在工具里引入依赖包了,如下

 

 虽然路走偏了,顺路了解了一下压缩操作,

 未添加依赖包,运行混淆后的jar包发现,代码少了很多,并且对父类方法的重写都失效了

 还是没意识到是没添加依赖包的问题,怀疑到了压缩的问题上了,

取消压缩

-dontshrink

 对应界面操作

 取消压缩后,少的代码确实有了,但是继承父类的方法还是改名了,这是混淆的问题,也想过保持继承这一类的代码不被混淆,但是没找到统一的配置,一个一个加不太现实;

对了里面还遇到了内部类的混淆问题,com.xx.xx$.* 这样可以保持内部类不被混淆。

 后来了解到压缩是把没用到的代码忽略掉,才意识到每天挤依赖包,重新开始输入jar包(jar内没添加依赖包),在界面上引用依赖包,进行混淆,测试成功。

主要配置:

 这样有个问题就是别人用这个混淆后的jar时,需要在本地项目引入jar所需的依赖包。

这个问题还没有找到好的解决方法,这样也算是混淆成功了,记录一下

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值