-
Notifications
You must be signed in to change notification settings - Fork 510
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG]在某些Android设备上处理数据时崩溃 #2263
Comments
能帮忙提供更多信息帮忙我做诊断原因么?比如数据的内容,或者更完整的堆栈信息 |
堆栈信息: 数据结构: 另外我这边还有一份发生闪退的SOC的列表,也许可以对您有帮助 |
这个堆栈是什么版本?是所有设备都有这个问题还是部分设备? |
Spreadtrum SC9863A 产生上面的堆栈信息的手机信息为: |
是偶发还是必现的? |
|
在writeInt32方法中,已经做了ensureCapacity off + 13,不会越界,这个崩溃好奇怪! @Override
public void writeInt32(int i) {
boolean writeAsString = (context.features & Feature.WriteNonStringValueAsString.mask) != 0;
int off = this.off;
int minCapacity = off + 13;
if (minCapacity >= chars.length) {
ensureCapacity(minCapacity);
}
final char[] chars = this.chars;
if (writeAsString) {
chars[off++] = quote;
}
off = IOUtils.writeInt32(chars, off, i);
if (writeAsString) {
chars[off++] = quote;
}
this.off = off;
} |
可以帮忙用android版本验证么?
|
你好,感谢回复!我在使用了最新的2.0.47版本之后仍然闪退,遂尝试新建了一个Example程序(为排除我们代码问题),引入2.0.47版本,仍然发生了闪退,代码如下:
} data class Airport( 堆栈日志如下: 我在使用2.0.47版本时,搜索完整的日志未发现Unsafe初始化失败的错误,然后我在搜索时看到一个可能有关联的问题: |
也是走到tojson时闪退了,用了几个版本都不行。安卓端。
|
你可以用 2.0.47.android5 版本,这个已经在手淘开始做测试的版本,性能和稳定性都没问题的。 |
可能是引用了fastjson2-kotlin模块的问题,如果有的话可以尝试去掉此依赖再试试,我在用了2.0.47.android5+fastjson2-kotlin会闪退,去掉了fastjson2-kotlin模块就可以了 |
真假?Kotlin的项目,去掉kotlin可以正常用不 |
目前 目前2.0.49及其之前的版本试试: Gradle implementation ("com.alibaba.fastjson2:fastjson2-kotlin:2.0.49") { // 此处2.0.49改为自己使用的版本
exclude group: "com.alibaba.fastjson2", module: "fastjson2"
} Kotlin Gradle implementation ("com.alibaba.fastjson2:fastjson2-kotlin:2.0.49") { // 此处2.0.49改为自己使用的版本
exclude(group = "com.alibaba.fastjson2", module = "fastjson2")
} |
如果仍然有问题, 麻烦请在当前项目terminal执行一下 |
#8 pc 00e6eede /data/app/com.mxdxedu.aps-BDKr4PnUmxV7p7pcdfVF9Q==/oat/arm/base.vdex (com.alibaba.fastjson2.util.IOUtils.putLong) 使用的是 设备是红米9A MIUI12.5.1 ANDROID 10 |
问题描述
线上使用了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版本时此设备正常使用
The text was updated successfully, but these errors were encountered: