问题描述
Android ART虚拟机不支持fastjson2, 缺少类 java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/management/ManagementFactory
环境信息
OS信息: Android10 API 29 JDK信息: Android ART 版本信息:Fastjson2 2.0.3
重现步骤
var obj = object { var message = "Hello" }
val obj = object { var message = "Hello" } val jsonString = JSON.toJSONString(obj) println(jsonString)
期待的正确结果 在JDK 11上实际输出如下 {"message":"Hello"}
安卓期望输出 {"message":"Hello"} 实际报错
相关日志输出
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.myapplication, PID: 31029 java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/management/ManagementFactory; at ...
E/AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "java.lang.management.ManagementFactory" on path: DexPathList[[zip file "/data/app/com.example.myapplication-DSxjsAQ_wm5Pn6Uxsz3adQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.myapplication-DSxjsAQ_wm5Pn6Uxsz3adQ==/lib/arm64, /data/app/com.example.myapplication-DSxjsAQ_wm5Pn6Uxsz3adQ==/base.apk!/lib/arm64-v8a, /system/lib64, /hw_product/lib64, /system/product/lib64]]
附加信息
原因是安卓ART虚拟机缺少类java/lang/management/ManagementFactory
原提问者GitHub用户Serendipithub
支持的,有专门的android版本 2.0.3.android https://repo1.maven.org/maven2/com/alibaba/fastjson2/fastjson2/2.0.3.android/
已经发布到maven中央仓库 https://repo1.maven.org/maven2/com/alibaba/fastjson2/fastjson2/2.0.4.android/
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。