alibaba / fastjson2

🚄 FASTJSON2 is a Java JSON library with excellent performance.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[BUG] Android - NoSuchMethodError: No virtual method getBoolean(Ljava/lang/Object;J)Z in class Lsun/misc/Unsafe;

xDragonZ opened this issue · comments

问题描述

https://github.com/alibaba/fastjson2/blob/main/core/src/main/java/com/alibaba/fastjson2/writer/FieldWriterBoolValField.java#L28

Caused by java.lang.NoSuchMethodError: No virtual method getBoolean(Ljava/lang/Object;J)Z in class Lsun/misc/Unsafe; or its super classes (declaration of 'sun.misc.Unsafe' appears in /system/framework/core-libart.jar)
       at com.alibaba.fastjson2.writer.FieldWriterBoolValField.getFieldValueBoolean(FieldWriterBoolValField.java:35)
       at com.alibaba.fastjson2.writer.FieldWriterBoolValField.getFieldValue(FieldWriterBoolValField.java:24)
       at com.alibaba.fastjson2.writer.FieldWriterBoolVal.write(FieldWriterBoolVal.java:29)
       at com.alibaba.fastjson2.writer.ObjectWriterAdapter.write(ObjectWriterAdapter.java:326)
       at com.alibaba.fastjson2.JSON.toJSONString(JSON.java:3076)

环境信息

com.alibaba.fastjson2:fastjson2:2.0.49.android5

com.android.application version "8.3.2"

Gradle 8.7

Android Studio Iguana | 2023.2.1 Patch 2
Runtime version: 17.0.9+0--11185874 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.

minSdkVersion 21
targetSdkVersion 33

重现步骤

JSON.toJSONString(xxx, JSONWriter.Feature.FieldBased);

附加信息

Ref? : #2041

设备:

Oppo F1s, A57, A1601
Galaxy J1 Mini, Galaxy Note4, Galaxy J2 Prime
Vivo Y55A,
Xiaomi HM Note 2

VMOS Virtual Machine, Android 5.1 (64 Bit) 可以重现这个崩溃

image

请问测试运行的Android系统版本是多少?

请问测试运行的Android系统版本是多少?

主机 Android 10 跑 VMOS Android 5.1.1 (64 bit)

https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.50.android5-SNAPSHOT/
问题已修复,请帮忙用2.0.50.android5-SNAPSHOT验证,2.0.50.android5预计在5月12日前发布

请问测试运行的Android系统版本是多少?

主机 Android 10 跑 VMOS Android 5.1.1 (64 bit)

Android 7以下core-libart.jar中Unsafe魔法类不完整, 这边已发现并兼容, 麻烦使用上面温少发的快照版验收下.

测试了 2.0.50.android5-snapshot 没问题。谢谢 👍

https://github.com/alibaba/fastjson2/releases/tag/2.0.50
2.0.50已发布,请用新版本2.0.50.android5