今天处理时遇到一个神坑坑,java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to xxxxx
原因是,代码混淆后,json找不到对应的类名了。需在混淆文件中,加入防止混淆的命令。
android的构建脚本用的语法是gradle文件,打开build.gradle文件,一般指定混淆文件的脚本如下:
android {
buildTypes {
release {
minifyEnabled true // 是否混淆
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' //android默认混淆规则 + proguard-rules.pro中的自定义规则
}
}
}
打开proguard-rules.pro
,添加如下3行规则:
-keepattributes Signature
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.**{*; }