[BUG] Android - NoSuchMethodError: No virtual method getBoolean(Ljava/lang/Object;J)Z in class Lsun/misc/Unsafe;
xDragonZ opened this issue · comments
问题描述
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) 可以重现这个崩溃
请问测试运行的Android系统版本是多少?
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