fastjson混淆应注意的事项
2018-01-24 16:21
323 查看
一添加依赖包
fastjson的jar下载地址:
http://mvnrepository.com/artifact/com.alibaba/fastjson/1.1.45.android
或者:
二 混淆
1 忽略fastjosn
2 忽略范型
3 忽略系列化
刚开始我是这样写的:
结果打debug包程序正常运行;打release包时,程序直接崩溃了,? 经过反复测试发现把Object对象转为JSONString时返回{},要求为空,所以程序直接崩溃了。
把上述代码改为:
然后就可以了。究其原因是上面的代码在混淆时没有忽略私有属性,混淆时私有属性自然会被混淆,属性名发生变化,在Object对象转为JSonString时,就出现错误了。
fastjson的jar下载地址:
http://mvnrepository.com/artifact/com.alibaba/fastjson/1.1.45.android
或者:
compile 'com.alibaba:fastjson:1.1.45.android'
二 混淆
1 忽略fastjosn
-dontwarn com.alibaba.fastjson.** -keep class com.alibaba.fastjson.**{*;}
2 忽略范型
-keepattributes Signature
3 忽略系列化
刚开始我是这样写的:
#不混淆Serializable接口的子类中指定的某些成员变量和方法 -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(); }
结果打debug包程序正常运行;打release包时,程序直接崩溃了,? 经过反复测试发现把Object对象转为JSONString时返回{},要求为空,所以程序直接崩溃了。
把上述代码改为:
-keepclassmembers class * implements java.io.Serializable { *; }
然后就可以了。究其原因是上面的代码在混淆时没有忽略私有属性,混淆时私有属性自然会被混淆,属性名发生变化,在Object对象转为JSonString时,就出现错误了。
相关文章推荐
- fastjson 混淆注意事项
- fastjson 转换 map 为 object 注意事项
- Gson的使用注意事项以及与fastjson的对比
- 使用fastjson需要注意的事项
- SpringMVC4.3+fastjson1.2.39注意事项
- FastJSON、Gson和Jackson性能对比和共同缺点,注意事项
- fastjson混淆后default constructor not found.
- s使用eval解析json实例与注意事项
- 如何混淆android代码以及注意事项
- .NET MVC3 几种返回 JSON 对象的方式和注意事项
- [JS笔记]$.ajax传JSON数据到后台的注意事项
- android webview中调用了js的时候混淆注意事项
- Android代码混淆的注意事项
- json数据在前端和php后端处理注意事项
- JS使用eval解析JSON的注意事项分析
- jsoncpp库使用注意事项
- android js互相调用的方法,混淆后js无效,addJavascriptInterface使用注意事项
- 关于fastjson混淆打包后javaBean报空指针异常的解决方案
- json 注意事项
- Android 混淆注意事项