Android Java App崩溃与SIGSEGV

时间:2011-10-11 10:40:11

标签: android garbage-collection sigsegv

我的Android应用程序有时会在没有任何错误消息的情况下崩溃。该应用程序刚关闭,设备返回主屏幕。

通常会有一些错误消息,应用程序崩溃但没有显示。 Logcat表明发生了某种分段违规导致崩溃,但由于应用程序只包含java代码而且没有本机代码我真的好奇为什么应用程序崩溃了。可以有人给我一个线索吗?

以下是应用程序崩溃时logcat显示的内容:

D/dalvikvm(23912): GC freed 3923 objects / 230968 bytes in 94ms
I/DEBUG   (18110): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (18110): Build fingerprint: 'MOTO_O2DE/umts_sholes/umts_sholes/sholes:2.1-update1/SHOLS_U2_02.36.0/6899264:user/rel-keys'
I/DEBUG   (18110): pid: 23912, tid: 23913  >>> com.example.test <<<
I/DEBUG   (18110): signal 11 (SIGSEGV), fault addr 0000000c
I/DEBUG   (18110):  r0 00140120  r1 00000048  r2 00000000  r3 00140168
I/DEBUG   (18110):  r4 afe3ae08  r5 00000006  r6 00140158  r7 0000a000
I/DEBUG   (18110):  r8 100ffcf8  r9 4185eef8  10 4185eee0  fp 001243b0
I/DEBUG   (18110):  ip 00000000  sp 100ffc50  lr afe0f130  pc afe0aeec  cpsr 80000070
I/DEBUG   (18110):          #00  pc 0000aeec  /system/lib/libc.so
I/DEBUG   (18110):          #01  pc 000008e6  /system/lib/libstdc++.so
I/DEBUG   (18110):          #02  pc 00014124  /system/lib/libutils.so
I/DEBUG   (18110):          #03  pc 0001423c  /system/lib/libutils.so
I/DEBUG   (18110):          #04  pc 0001af28  /system/lib/libbinder.so
I/DEBUG   (18110):          #05  pc 0001ba20  /system/lib/libbinder.so
I/DEBUG   (18110):          #06  pc 0001bcd6  /system/lib/libbinder.so
I/DEBUG   (18110):          #07  pc 00014236  /system/lib/libutils.so
I/DEBUG   (18110):          #08  pc 000293a6  /system/lib/libandroid_runtime.so
I/DEBUG   (18110):          #09  pc 000313ca  /system/lib/libandroid_runtime.so
I/DEBUG   (18110):          #10  pc 0000ecb4  /system/lib/libdvm.so
I/DEBUG   (18110):          #11  pc 00038838  /system/lib/libdvm.so
I/DEBUG   (18110):          #12  pc 000139b8  /system/lib/libdvm.so
I/DEBUG   (18110):          #13  pc 00019338  /system/lib/libdvm.so
I/DEBUG   (18110):          #14  pc 00018804  /system/lib/libdvm.so
I/DEBUG   (18110):          #15  pc 0004eed0  /system/lib/libdvm.so
I/DEBUG   (18110):          #16  pc 0004eef8  /system/lib/libdvm.so
I/DEBUG   (18110):          #17  pc 00044ada  /system/lib/libdvm.so
I/DEBUG   (18110):          #18  pc 00044b66  /system/lib/libdvm.so
I/DEBUG   (18110):          #19  pc 00044ff0  /system/lib/libdvm.so
I/DEBUG   (18110):          #20  pc 000425f4  /system/lib/libdvm.so
I/DEBUG   (18110):          #21  pc 0000fd94  /system/lib/libc.so
I/DEBUG   (18110):          #22  pc 0000f860  /system/lib/libc.so
I/DEBUG   (18110):
I/DEBUG   (18110): code around pc:
I/DEBUG   (18110): afe0aedc 809bf000 2d1f08d5 f8d0d829 68c2c008
I/DEBUG   (18110): afe0aeec 600cf8dc f0404286 6890822e f04042b0
I/DEBUG   (18110): afe0aefc 4594822a d1079e02 fa122201 59a2f505
I/DEBUG   (18110):
I/DEBUG   (18110): code around lr:
I/DEBUG   (18110): afe0f120 e1a00005 e3a01001 e1a02004 ebfffa00
I/DEBUG   (18110): afe0f130 e3500000 1a000001 ea000008 ebfffa0a
I/DEBUG   (18110): afe0f140 e1a01004 e3a00002 ebfffa05 e3a02000
I/DEBUG   (18110):
I/DEBUG   (18110): stack:
I/DEBUG   (18110):     100ffc10  afe3db94
I/DEBUG   (18110):     100ffc14  afe0f130  /system/lib/libc.so
I/DEBUG   (18110):     100ffc18  00000000
I/DEBUG   (18110):     100ffc1c  afe0f048  /system/lib/libc.so
I/DEBUG   (18110):     100ffc20  afe3d9dc
I/DEBUG   (18110):     100ffc24  998bffec
I/DEBUG   (18110):     100ffc28  afe3db94
I/DEBUG   (18110):     100ffc2c  afe0f130  /system/lib/libc.so
I/DEBUG   (18110):     100ffc30  afe3ae08  /system/lib/libc.so
I/DEBUG   (18110):     100ffc34  003f194c  [heap]
I/DEBUG   (18110):     100ffc38  00140158  [heap]
I/DEBUG   (18110):     100ffc3c  00005f38
I/DEBUG   (18110):     100ffc40  100ffcf8
I/DEBUG   (18110):     100ffc44  4185eef8
I/DEBUG   (18110):     100ffc48  df002777
I/DEBUG   (18110):     100ffc4c  e3a070ad
I/DEBUG   (18110): #00 100ffc50  a9da9208  /system/lib/libbinder.so
I/DEBUG   (18110):     100ffc54  00100000  [heap]
I/DEBUG   (18110):     100ffc58  00002bd4
I/DEBUG   (18110):     100ffc5c  afd008e9  /system/lib/libstdc++.so
I/DEBUG   (18110):     100ffc60  003ee870  [heap]
I/DEBUG   (18110):     100ffc64  00140158  [heap]
I/DEBUG   (18110):     100ffc68  003f194c  [heap]
I/DEBUG   (18110):     100ffc6c  003f194c  [heap]
I/DEBUG   (18110):     100ffc70  00005f38
I/DEBUG   (18110):     100ffc74  afd008e9  /system/lib/libstdc++.so
I/DEBUG   (18110): #01 100ffc78  00140158  [heap]
I/DEBUG   (18110):     100ffc7c  a9d14127  /system/lib/libutils.so
I/ActivityManager( 1283): Process com.example.test (pid 23912) has died.
I/WindowManager( 1283): WIN DEATH: Window{44fcf318 com.example.test/com.example.test.Main paused=false}
D/Zygote  ( 1054): Process 23912 terminated by signal (11)
D/dalvikvm( 1614): GC freed 1856 objects / 84128 bytes in 78ms

该设备的Android版本是2.1 update 1

2 个答案:

答案 0 :(得分:4)

SIGSEGV表示固件错误。应该无法从Android SDK应用程序中导致其中一个。

错误转储表明您正在摩托罗拉设备上测试此设备,可能是DROID。如果您有权访问其他设备,请在那里试用您的应用,看看是否有相同的崩溃。

如果您只在某些模块ROM上发生这些崩溃,您应该联系该ROM制造商并指出他们这个问题,最好是说明如何重现这次崩溃。

如果您在每个运行库存固件的多个设备上发生崩溃,那么这将是Android固件错误。将您在下面的整个错误转储以及重现崩溃的步骤发布到http://b.android.com

如果您只在此Motorola设备上发生崩溃,那么您在下面的整个错误转储以及重现崩溃的步骤将转移到相关的MOTODEV support board

答案 1 :(得分:0)

这些突发崩溃是否发生在任何其他应用程序上?

您能描述一下应用的一般特性,它的作用,它使用的权限和库吗?随机性使我怀疑一块硬件因热或其他异常条件而在随机时间失效。