开发者社区> 问答> 正文

Android不支持fastjson2么?

问题描述

Android ART虚拟机不支持fastjson2, 缺少类 java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/management/ManagementFactory

环境信息

OS信息: Android10 API 29 JDK信息: Android ART 版本信息:Fastjson2 2.0.3

重现步骤

  1. 使用 JSON::toJSONString(Any) 方法
  2. 输入数据

var obj = object { var message = "Hello" }

  1. 出现 java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/management/ManagementFactory 错误

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

展开
收起
大圣东游 2023-04-21 12:07:23 439 0
2 条回答
写回答
取消 提交回答
  • 支持的,有专门的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

    2023-04-21 15:01:04
    赞同 展开评论 打赏
  • FASTJSON v2是FASTJSON项目的重要升级,目标是为下一个十年提供一个高性能的JSON库,支持Android。

    2023-04-21 12:46:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载