SIGSEGV在Android 5.0 Lollipop设备上崩溃(只有它们)

时间:2015-03-19 15:29:52

标签: android crash gson android-5.0-lollipop ormlite

我们公司有一个Android应用程序已经出现几个月了,据报道很少有崩溃事件。

但随着Lollipop升级推广到我们的客户设备,我们得到了关于间歇性分段故障(SIGSEGV)崩溃的报告。崩溃只发生在Android 5.0设备上 - 比如升级的三星Galaxy 5,索尼Xperia Z3,新的HTC设备(不确定型号名称)和其他一些设备。所有Android 4+设备都可以毫无问题地运行我们的应用程序,但到目前为止所有经过测试的Android 5设备都会遇到这些崩溃

我们已经能够重现它们,因为我们在自己的设备上遇到了这些崩溃。但到目前为止,我们已经能够找到崩溃的来源,或者找到导致崩溃的模式。

这是报告的崩溃转储之一:

    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/klteactivexx/klteactive:5.0/LRX21T/xxxxxx:user/release-keys'
Revision: '8'
ABI: 'arm'
pid: 8779, tid: 10227, name: hwuiTask2 >>> com.ourcompany.ourapp <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xbd04a008
r0 9d04a00c r1 b6f6b87c r2 9d04a000 r3 ffffffe2
r4 00000001 r5 07ffffff r6 00000002 r7 b6f6b894
r8 00000002 r9 fffffffc sl b6f6b87c fp 0000001f
ip 00000004 sp 9ee71a8c lr b6f37f4d pc b6f36a52 cpsr 00010030

backtrace:
#00 pc 0003ca52 /system/lib/libc.so (arena_run_reg_alloc+101)
#01 pc 0003df49 /system/lib/libc.so (je_arena_tcache_fill_small+96)
#02 pc 0004bad7 /system/lib/libc.so (je_tcache_alloc_small_hard+14)
#03 pc 000476af /system/lib/libc.so (je_malloc+302)
#04 pc 0000fa5f /system/lib/libc.so (malloc+10)
#05 pc 00000b09 /system/lib/libstdc++.so (operator new(unsigned int)+4)
#06 pc 000e2ecf /system/lib/libskia.so (SkPathRef::Editor::Editor(SkAutoTUnref<SkPathRef>*, int, int)+32)
#07 pc 000df1c1 /system/lib/libskia.so (SkPath::incReserve(unsigned int)+12)
#08 pc 000e0631 /system/lib/libskia.so (SkPath::addRRect(SkRRect const&, SkPath::Direction)+120)
#09 pc 000e0745 /system/lib/libskia.so (SkPath::addRoundRect(SkRect const&, float, float, SkPath::Direction)+76)
#10 pc 0003e6fd /system/lib/libhwui.so
#11 pc 0003e2ad /system/lib/libhwui.so
#12 pc 000314b3 /system/lib/libhwui.so
#13 pc 0001512b /system/lib/libhwui.so
#14 pc 0000ef11 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+112)
#15 pc 000602f5 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+72)
#16 pc 0000ea81 /system/lib/libutils.so
#17 pc 000137bb /system/lib/libc.so (__pthread_start(void*)+30)
#18 pc 0001189b /system/lib/libc.so (__start_thread+6)

我们自己编写的应用程序中没有本机代码,除了Android库之外我们唯一使用的库是GSon 2.3.1,Ormlite 4.48和Spring 1.0.0。

我有点不确定如何处理这些错误,所以欢迎任何帮助。我已经看到使用NDK堆栈工具将崩溃转储转换为更具可读性的建议,但由于没有关于NDK的预先知识,我到目前为止还没有能够在我的开发环境中使用它(Windows7,Eclipse Kepler) 。

任何在Android 5.0升级开始向客户推出时有任何相似经历的人,或者对于我应该如何或在何处继续寻找原因有任何想法?

我认为NDK Stack Tool是我最大的希望,但到目前为止我还没有找到一个很好的教程,可以随时随地使用它。

0 个答案:

没有答案