android代码混淆 GSON完满解决

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

头疼的问题,json使用了google的gson三方包,可是混淆的时候出了问题


明明已经按照gson的官方文档,把混淆脚本加上去了,却还是出问题。

今天同事找到一篇博客,关于这个问题的:

我们是将json解析以后放到javabean中去的,但是一直出问题,放进去的字符串是对的,解析出来的javabean却是空,节操碎一地


-keep class com.google.**{*;}
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}


##---------------Begin: proguard configuration for Gson  ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature  
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }  
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }  ##这里需要改成解析到哪个  javabean

##---------------End: proguard configuration for Gson  ----------


这些个是官方给的脚本,放进去那叫一蛋疼,坑爹

最后一篇博客9了我:http://blog.sina.com.cn/s/blog_4e1e357d0101ednf.html


大致是 倒数第二行 需要让所有定义的javabean不被混淆,改过来之后就好了,十分感谢,希望朋友们也少走弯路


英文不好也是相当的坑爹呀,唉

NLP实战:如何用CoNLL-2003数据集快速提升命名实体识别模型性能(附完整代码 本文详细介绍了如何利用CoNLL-2003公开数据集,通过深度剖析数据特点、构建鲁棒的数据预处理流水线、选择合适的模型架构(如BERT-CRF)以及优化训练策略,来系统性地提升命名实体识别(NER)模型的性能。文章提供了完整的代码示例,并分享了处理数据不均衡、标签对齐等核心挑战的实战技巧,帮助读者从理论到实践全面掌握NER任务。 阅读详情

相关推荐

免杀思路总结

免杀思路总结 1.免杀技术简介 1.免杀的重要性 2.免杀的难度 3.杀毒软件的排行 国外 国内 1 、Bitdefender 1、360 2 、Norton 360 2、智量安全(没测过,据说很厉害) 3 、Kaspersky 3、火绒安全 4 、Webroot 4、金山独霸 5 、Trend Micro 5

LiBai'S BLOG 1万+

Android开发中混淆Gson序列化、反序列化的那些坑

其实很简单就下面这张图,含概了Android所有需要学的知识点,一共8大板块:架构师筑基必备技能Android框架体系架构(高级UI+FrameWork源码)360°Androidapp全方位性能调优设计思想解读开源框架NDK模块开发移动架构师专题项目实战环节移动架构师不可不学习微信小程序混合开发的flutterAndroid学习的资料我呢,把上面八大板块的分支都系统的做了一份学习系统的资料和视频,大概就下面这些,我就不全部写出来了,不然太长了影响大家的阅读。

m0_55030688的博客 817

在 SAP ABAP 里可靠地对接 FTP 服务器:从连接、命令到传输与排错的完整实战

本文详细介绍了在SAP ABAP中实现FTP文件交换的完整技术方案。文章首先解析了FTP协议的双连接特性(控制连接与数据连接),强调保持控制连接的重要性。随后详细说明了ABAP中FTP操作的四步标准流程:建立连接(包含HTTP_SCRAMBLE加密)、执行命令、断开连接和关闭RFC通道。文章提供了实战案例代码,演示如何将FTP文件复制到应用服务器再读取进内表处理,特别指出后台作业与前台操作的关键差异。最后总结了常见错误排查要点,包括连接模型、路径设置和资源释放等问题。全文通过SAP标准函数模块的调用顺序、典

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 266

使用gson导致不能混淆解决办法

由于使用了gson解析json字符串生成对象,导致混淆后的jar包不能正确使用。经过上网查阅资料,找到了正确的混淆方式。  原理:解压开混淆后的jar后发现,使用gson.from或者其他方法生成对象时,由于找不到正确的对应类,所以报错了, 我们只要把实现Serialized接口的类不混淆就可以了(因为gson转化过的类必须实现这个接口)。代码如下: -keep class

酒比花香的专栏 2882

Gson Android适配:ProGuard和R8混淆配置

Android应用开发中,使用Gson(Java序列化/反序列化库)时,代码混淆(ProGuard/R8)常常导致JSON解析失败。本文将系统讲解Gson混淆原理、官方配置方案及实战案例,帮助开发者彻底解决混淆导致的`com.google.gson.JsonSyntaxException`和`NoSuchFieldException`等问题。 ## 混淆引发的Gson解析问题 Android...

gitblog_00164的博客 618

gson库冲突 com.google.code.gson:gson:2.7

运行时报错 Duplicate class com.google.gson.DefaultDateTypeAdapter found in modules gson-2.7.jar (com.google.code.gson:gson:2.7) and xiaohaizi-yst-release-runtime.jar (xiaohaizi-yst-release.aar) Duplicate...

weixin_40797306的博客 5019

代码混淆 GSON完满解决

头疼的问题,json使用了googlegson三方包,可是混淆的时候出了问题 明明已经按照gson的官方文档,把混淆脚本加上去了,却还是出问题。 今天同事找到一篇博客,关于这个问题的: 我们是将json解析以后放到javabean中去的,但是一直出问题,放进去的字符串是对的,解析出来的javabean却是空,节操碎一地 -keep class com.google.**{*;...

weixin_34061042的博客 207

googlegson三方包混淆问题,附上通用proguard-rules.pro

碰到个头疼的问题,一个朋友项目混淆后打包编译出错,debug模式下正常。断点模式下一步步检查发现:json解析以后数据放到javabean中去的,放进去的字符串是对的,解析出来的,但是javabean却是空,节操碎一地,多方查找原因后知道他项目json使用了googlegson三方包,于是猜想混淆的时候出了问题。

皮小智的博客 3967

Android 中引入了gson混淆后出现解析不出model

配置文件中引入了 //gson implementation 'com.google.code.gson:gson:2.8.6' 然后会出现解析不出,数据,这时排查网络框架或是解析,经查发现是是用了gson ,不要混淆用的数据类 bean

739

GSON:我爸是 Google

作者 |沉默王二责编 | 张文头图 | CSDN 下载自视觉中国来源 | 沉默王二(ID:cmower)关于我我叫 GSON,是一款开源的 Java 库。主要用途为序列化 Java...

CSDN资讯 1105

Android之-Gson混淆问题

google出的Gson个人感觉在处理json和对象之间的转换方面还是相当简便的。不过在混淆的时候就碰到了点问题,遇到嵌套的json数据无法成功转换成正确的对象。这个问题折腾了自己好几天,还特意新建了个项目来确定原因。因为电脑不算很好,签名混淆打包比较费时,4,5分钟的样子才能打好,具体没计算过,不过大概范围就这样,所以导致调试花了蛮久的。今天在搜索中文相关问题找不到结果的情况下只搜索英文,终于找

598

android 代码混淆 gson,Android Gson 进行混淆打包导致无法进行解析 Json

所谓本地开发,测试稳得一批,一到线上就抽风就是这样在 Android 打包成 App release 的时候,配置了混淆功能,导致无法正常解析主要原因是:客户端中的 JavaBean 与 服务端返回的 JavaBean 的字段 key 需保持一致,才可正常的解析。而如有使用混淆编译功能的话,它会全部给你改成了 a/b/c/d 类似的字符串,这就与服务端返回的 key 不一致,导致无法进行拆包获取举...

weixin_42349214的博客 715

android解决gson包冲突方法,Android笔记:防反编译、代码混淆中,解决第三方jar包不被混淆的一些心得,及gson混淆方法...

为了防止代码被反编译,一般在签名导出前需要对代码进行混淆。最近发现自己的一个项目工程在代码混淆后,使用中出现了异常。以下是自己这几天在解决代码混淆以及引入第三方jar包导致混淆出现的问题处理的一些心得:1.需要做混淆保护的内容:(1.一般四大组件都会默认不被混淆(2.自定义组件的类也要设置为不被混淆,否则找不到控件,例如:-keep public class rongqin.musicplayer...

weixin_35690449的博客 1535

使用Gson 代码混淆问题

使用Gson 如果只配置 keep class com.google.gson.* {;} 会出现如下错误: com.google.gson.internal.StringMap cannot be cast to ***class解决方法:proguard-project.txt 中添加如下配置代码:-libraryjars libs/gson-2.2.4.jar -keep class com

u010743397的博客 950

使用Gson转化实体类时的混淆配置

在 Andorid 项目遇到了一个比较诡异而隐蔽的 bug: 使用网络请求获取一个数据,在测试环境中表现一切正常,而在正式包中这个获取的数据却一直为 null。 在测试环境中数据正常,说明我写的代码没问题,但是为啥在正式环境中数据就空了呢? 我从两个方面进行了分析: 这个获取数据的过程分为两步。第一步是网络请求获得 JSON 数据,第二步是把获得的 JSON 数据使用 Gson 转换成

lzc394049722的博客 2639

android代码混淆gson无法解析问题

最近在自己项目中遇到一个问题,定义了多个model用于gson解析服务端返回的json格式数据。在release版本混淆了这些model导致在运行后直接崩溃,后面网上查了一些资料发现是因为model被混下了,导致gson解析无法找到对应的model里面的字段。 分析如下: -prog...

cihu4964的博客 497

安卓设置混淆后,gson报错解决方法

//这句非常重要,主要是滤掉使用gson的bean文件不进行混淆编译,具体根据不同的包名进行调整。二,混淆的文件中,对gson相关类不进行混淆,否则会在运行中报错,proguard-rules.pro在该文件中添加如下内容。

王的备忘录 1740

Android Gson 混淆配置(最新) Gson混淆的坑

##---------------Begin: proguard configuration for Gson ---------- # Gson uses generic type information stored in a class file when working with fields. Proguard # removes such information by defaul...

Jason_HD的博客 2582

Android混淆总结

Android混淆总结

weixin_42602900的博客 4163
上一篇: android 常用控件一览(从底层分析,为自定义控件做下小铺垫)
下一篇: android ant 最简单的打包签名,混淆方法
五柳--先生
博客等级 码龄16年 106粉丝 87原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值