Kotlin 新版本1.3.50 ProGuard 之后 json 转换 object 出错,我把 '1.3.50' 改成 '1.3.21' 才不会出错。
# proguard 内容
-keep class kotlin.reflect.jvm.internal.**{ *; }
-dontwarn com.alibaba.fastjson.**
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.cheekiat.fastjson.model.**{*;}
-keep class com.alibaba.fastjson.**{*;}
3条答案
按热度按时间dfty9e191#
+1
isr3a4wc2#
添加kotlin-reflect库,并对kotlin.reflect子包添加混淆keep规则;数据bean(即data class)也要keep住,另data class类需要给他一个无参构造器
j8yoct9x3#
Android Studio 升级Gradle6.5(Gradle Plugin 4.1)之后,Kotlin中使用fastjason出问题,无法把json串反序列化为Kotlin对象。研究了很久才发现需要这样解决:Kotlin代码中不仅要在data类上添加@keep标注,还需要在其宿主类上添加@keep标注。在Gradle Plugin4.0版没有没有在其宿主类上添加@keep标注也是可以正常工作的,不知道为何升级之后需要这样做,可以解答一下吗? @liminghuanghengtian
目前我让fastjson正常逆序列化Kotlin对象的做法如下: