记录自己遇到的代码混淆问题(spring boot项目代码混淆):

1、由于引入框架,比如JDO,spring boot,有些方法是框架去调用,所以这些是不能够被混淆的。
比如自己编写的转换类:

public class ListStringToStringConverter implements AttributeConverter<List<String>, String> {@Overridepublic String convertToDatastore(List<String> attributeValue) {return CollectionUtils.isEmpty(attributeValue) ? JacksonUtils.toJson(new ArrayList<>()): JacksonUtils.toJson(attributeValue);}@Overridepublic List<String> convertToAttribute(String datastoreValue) {if (StringUtils.isBlank(datastoreValue)) {return new ArrayList<>();}return JacksonUtils.fromJson(datastoreValue, new TypeReference<ArrayList<String>>() {});}
}

AttributeConverter来自javax.jdo.AttributeConverter,是jdo需要去调用的,代码混淆后这些override的方法是不能够被混淆的,否则jdo调用不到,报错。
要用 -keep public class 具体的类{*;} 保持类不被混淆

2、当代码中遇到了多个catch exception的时候,proguard代码混淆会触发bug。代码存在下面这种

try{// code }catch (IOException |  InvalidFormatException e){LOG.error(e);throw new RuntimeException(e);}

报错信息是:
java.lang.VerifyError: Bad type on operand stack

即使keep这个报错的类 也无法消除这个报错。后续找到这个bug的讨论,发现我的这个类里面确实含有多个catch exception的情况
这是这个bug的讨论

解决办法:bug的讨论里面Eric给出了一种解决办法,如下

但由于项目的jdk版本不能随意改,所以我只有将代码中的多个catch Exception改掉,只用一个Exception。

proguard代码混淆问题相关推荐

  1. java代码proguard代码混淆GUI使用,附带混淆map映射

    proguard代码混淆GUI使用,附带混淆map映射 混淆结果预览 本例使用的是Proguard 7.2.2,可以官网直接下载 链接:https://pan.baidu.com/s/1PejprpE ...

  2. java 混淆 ant_Ant编译android,并Proguard代码混淆,v4混淆配置

    忙了三四周,总算把购开心的ios版(appStore搜"购开心")成功翻译成了android版,UI效果基本保持一致,上一张UI效果图吧,很养眼的: 还不错吧,进入正题吧. 以前一 ...

  3. springboot proguard 代码混淆

    前面主要描述碰到的问题,文章后面会给出我的proguard-maven-plugin插件的完整配置 proguard-maven-plugin 插件版本 2.3.1,proguard-base版本7. ...

  4. ProGuard代码混淆器如何使用

  5. Android代码混淆工具Proguard学习

    概述 Proguard代码混淆工具:可以对代码进行去冗余压缩,代码优化,代码混淆等.在Android中的主要应用就是对代码混淆:就是将类名,方法名,Field名变成如a,b,c或者1,2,3等难以阅读 ...

  6. 最新版SpringBoot结合ProGuard实现代码混淆

    SpringBoot结合ProGuard实现代码混淆 参考案例 前言 ProGuard集成 1.maven的配置 2.相关异常解决 注意事项 参考案例 1.Springboot+proguard+ma ...

  7. Android Progurad 代码混淆

    ref: ProGuard基础语法和打包配置.md https://github.com/D-clock/Doc/blob/master/Android/Gradle/3_ProGuard%E5%9F ...

  8. 迷你播放器--第一阶段(7)--安全攻防第一战--对抗反编译,代码混淆和对抗动态调试

    迷你播放器--第一阶段(7) 安全攻防第一战--对抗反编译,代码混淆和对抗动态调试; 本文章为CSDN作者原创,转载请保留出处:http://blog.csdn.net/lrs0304/article ...

  9. maven 代码混淆

    proguard代码混淆 <!-- Build Settings --><build><plugins><plugin><groupId>c ...

最新文章

  1. 谷歌开发者大会杀出技术黑马,知乎AI终于不再隐藏实力了
  2. 言论丨李开复:中国在AI领域的优势与机会,现阶段AI领域的挑战
  3. 手机休眠监测wifi
  4. 常用前端框架Angular和React的一些认识
  5. 学习笔记(十二)——虚拟机安装和pycharm远程连接Ubuntu
  6. lua执行shell命令6_tolua_runtime 集成 lua-protobuf 第三方pb3解析库
  7. 分析PCB技术印制电路板的可靠性设计(z)
  8. php 实现类,php如何实现类
  9. linux忘记mysql密码_linux下忘记mysql root密码解决办法 | 系统运维
  10. 第1次作业:阅读优秀博文谈感想
  11. java 一一对应的替换_SpringMVC的Controller是如何将参数和前端传来的数据一一对应的...
  12. Tensorflow学习—— 预创建的 Estimator
  13. 腾讯钟翔平:以数字技术驱动,做智慧交通共建者
  14. python 和vba在财务上_各位大佬好,财务分析,要使用BI,VBA,Python,Wind学习那个可以对财务工作更加有益?...
  15. dell optiplex 7090 ssf 注入intel i219 网卡驱动安装exsi 7.0.2
  16. 0.1 番外篇: UML 类图
  17. 冰雪之冠上的明珠与东方明珠 辉映在黄浦江两岸
  18. Android使用java和kotlin混合开发时 发现黄油刀BindView失效
  19. 【日记本砸】21.01.08-12 最快的成长方式就是慢慢来
  20. 计算机软件系统的组成

热门文章

  1. python对配置文件的读写
  2. 哦买嘎,我没有积分啊!
  3. POSTMAN 设置cookie
  4. 服务器系统不关机怎么备份,服务器数据库不关机备份
  5. 由一次渗透引发的安全思考
  6. 【Pygame 学习笔记】8.精灵
  7. smartctl/hdparm对usb 硬盘识别的原因
  8. 牛客小白月赛4 20180616C
  9. python判断三位数水仙花数_python 判断一个三位数是不是水仙花数
  10. Linux学习笔记(六)压缩和解压缩命令