问题描述
线上使用了fastjson兼容版本2.0.40之后发现部分Android设备上会发生闪退
后续使用了fastjson兼容版本2.0.46、fastjson2 2.0.46均可以复现闪退
环境信息
- OS信息: Android 13
- JDK信息: JDK 11
- 版本信息:2.0.40/2.0.46
重现步骤
在接收到后端数据后使用JSON相关方法会发生闪退
期待的正确结果
不闪退
相关日志输出
backtrace:
#00 pc 0x00000000002fff9a /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (art_jni_trampoline+18)
#1 pc 0x0000000000330464 /apex/com.android.art/lib/libart.so (nterp_helper+5204)
#2 pc 0x0000000000365912 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.util.y.n+38)
#3 pc 0x000000000032f7ac /apex/com.android.art/lib/libart.so (nterp_helper+1948)
#4 pc 0x0000000000364a4a /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.util.y.w+298)
#5 pc 0x000000000032f7ac /apex/com.android.art/lib/libart.so (nterp_helper+1948)
#6 pc 0x00000000003006f0 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.m0.a1+148)
#7 pc 0x000000000032fb00 /apex/com.android.art/lib/libart.so (nterp_helper+2800)
#8 pc 0x0000000000373a04 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.writer.r0.v+144)
#9 pc 0x000000000032fb00 /apex/com.android.art/lib/libart.so (nterp_helper+2800)
#10 pc 0x00000000003738dc /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.writer.r0.n+100)
#11 pc 0x000000000032fb00 /apex/com.android.art/lib/libart.so (nterp_helper+2800)
#12 pc 0x000000000037a5fe /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.writer.k2.write+318)
#13 pc 0x0000000000330bd8 /apex/com.android.art/lib/libart.so (nterp_helper+7112)
#14 pc 0x00000000002b2f0c /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson.JSON.toJSONString+76)
#15 pc 0x00000000000a419d /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.odex (j6.a.m+420)
#16 pc 0x00000000000a67b9 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.odex (s5.a.i+576)
#17 pc 0x000000000032f0bc /apex/com.android.art/lib/libart.so (nterp_helper+172)
#18 pc 0x000000000044fef4 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.dragonpass.en.latam.activity.LoadingActivity.y0+244)
#19 pc 0x000000000032fb00 /apex/com.android.art/lib/libart.so (nterp_helper+2800)
#20 pc 0x000000000044fc60 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.dragonpass.en.latam.activity.LoadingActivity.n0)
#21 pc 0x000000000032f048 /apex/com.android.art/lib/libart.so (nterp_helper+56)
#22 pc 0x000000000044f948 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.dragonpass.en.latam.activity.b.run+4)
#23 pc 0x0000000000411957 /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (java.util.concurrent.Executors$RunnableAdapter.call+62)
#24 pc 0x0000000000496bab /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (java.util.concurrent.FutureTask.run+178)
#25 pc 0x00000000004e885d /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+828)
#26 pc 0x00000000004e5e27 /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+62)
#27 pc 0x00000000003c41af /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (java.lang.Thread.run+70)
#28 pc 0x00000000001419d5 /apex/com.android.art/lib/libart.so (art_quick_invoke_stub_internal+68)
#29 pc 0x00000000001baceb /apex/com.android.art/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+466)
#30 pc 0x00000000002302e3 /apex/com.android.art/lib/libart.so (art::Thread::CreateCallback(void*)+2070)
#31 pc 0x00000000000ad2a3 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+40)
#32 pc 0x000000000006435d /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30)
附加信息
在使用fastjson 1.2.73版本时此设备正常使用
问题描述
线上使用了fastjson兼容版本2.0.40之后发现部分Android设备上会发生闪退
后续使用了fastjson兼容版本2.0.46、fastjson2 2.0.46均可以复现闪退
环境信息
重现步骤
在接收到后端数据后使用JSON相关方法会发生闪退
期待的正确结果
不闪退
相关日志输出
backtrace:
#00 pc 0x00000000002fff9a /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (art_jni_trampoline+18)
#1 pc 0x0000000000330464 /apex/com.android.art/lib/libart.so (nterp_helper+5204)
#2 pc 0x0000000000365912 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.util.y.n+38)
#3 pc 0x000000000032f7ac /apex/com.android.art/lib/libart.so (nterp_helper+1948)
#4 pc 0x0000000000364a4a /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.util.y.w+298)
#5 pc 0x000000000032f7ac /apex/com.android.art/lib/libart.so (nterp_helper+1948)
#6 pc 0x00000000003006f0 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.m0.a1+148)
#7 pc 0x000000000032fb00 /apex/com.android.art/lib/libart.so (nterp_helper+2800)
#8 pc 0x0000000000373a04 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.writer.r0.v+144)
#9 pc 0x000000000032fb00 /apex/com.android.art/lib/libart.so (nterp_helper+2800)
#10 pc 0x00000000003738dc /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.writer.r0.n+100)
#11 pc 0x000000000032fb00 /apex/com.android.art/lib/libart.so (nterp_helper+2800)
#12 pc 0x000000000037a5fe /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson2.writer.k2.write+318)
#13 pc 0x0000000000330bd8 /apex/com.android.art/lib/libart.so (nterp_helper+7112)
#14 pc 0x00000000002b2f0c /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.alibaba.fastjson.JSON.toJSONString+76)
#15 pc 0x00000000000a419d /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.odex (j6.a.m+420)
#16 pc 0x00000000000a67b9 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.odex (s5.a.i+576)
#17 pc 0x000000000032f0bc /apex/com.android.art/lib/libart.so (nterp_helper+172)
#18 pc 0x000000000044fef4 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.dragonpass.en.latam.activity.LoadingActivity.y0+244)
#19 pc 0x000000000032fb00 /apex/com.android.art/lib/libart.so (nterp_helper+2800)
#20 pc 0x000000000044fc60 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.dragonpass.en.latam.activity.LoadingActivity.n0)
#21 pc 0x000000000032f048 /apex/com.android.art/lib/libart.so (nterp_helper+56)
#22 pc 0x000000000044f948 /data/app/~~gefk1pQ6rWbnVEinDLAsKw==/com.dragonpass.en.latam-DJfXOUyE9nqpEUdhmr1cKg==/oat/arm/base.vdex (com.dragonpass.en.latam.activity.b.run+4)
#23 pc 0x0000000000411957 /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (java.util.concurrent.Executors$RunnableAdapter.call+62)
#24 pc 0x0000000000496bab /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (java.util.concurrent.FutureTask.run+178)
#25 pc 0x00000000004e885d /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+828)
#26 pc 0x00000000004e5e27 /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+62)
#27 pc 0x00000000003c41af /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (java.lang.Thread.run+70)
#28 pc 0x00000000001419d5 /apex/com.android.art/lib/libart.so (art_quick_invoke_stub_internal+68)
#29 pc 0x00000000001baceb /apex/com.android.art/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+466)
#30 pc 0x00000000002302e3 /apex/com.android.art/lib/libart.so (art::Thread::CreateCallback(void*)+2070)
#31 pc 0x00000000000ad2a3 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+40)
#32 pc 0x000000000006435d /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30)
附加信息
在使用fastjson 1.2.73版本时此设备正常使用