一直以来 Java Unified SDK 都使用 fastjson 来进行 JSON 解析,最近由于 fastjson 出现了一些兼容性方面的问题,根据不少开发者的建议,我们将 Java Unified SDK 底层的 JSON 解析模块完全切换到了 Gson。当前最新的版本是 7.0.0-SNAPSHOT
,已经发布到了 Sonatype OSSRH (OSS Repository Hosting),欢迎大家试用并及时给我们反馈。
开发者在业务层使用 Java Unified SDK 与 JSON 解析库,主要有如下三种情形:
com.alibaba.fastjson
替换成 cn.leancloud.json
即可,例如://import com.alibaba.fastjson.JSON
//import com.alibaba.fastjson.JSONObject
//import com.alibaba.fastjson.JSONArray
import cn.leancloud.json.JSON
import cn.leancloud.json.JSONObject
import cn.leancloud.json.JSONArray
7.0.0-SNAPSHOT
之后,Android Studio 打包时出现 RuntimeException,出错信息如下:java.lang.RuntimeException
at org.objectweb.asm.ClassVisitor.visitModule(ClassVisitor.java:148)
at org.objectweb.asm.ClassReader.readModule(ClassReader.java:731)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:632)
at com.google.firebase.perf.plugin.instrumentation.Instrument.instrument(Instrument.java:151)
at com.google.firebase.perf.plugin.instrumentation.Instrument.instrumentClassesInJar(Instrument.java:100)
按照这里的解释,可以通过升级 Android Gradle plugin -> 3.5.3, Gradle -> v5.5
解决。
我们有计划将 Java Unified SDK 核心代码和 JSON 解析库分开,以后开发者可以根据自己的需求配置使用 Gson 或者 fastjson,类似于 retrofit2 的 converter factory,开发排期则要视开发者的需求而定。