用户滚动时android应用程序失败 - 没有“明显”的错误

时间:2010-01-07 19:03:40

标签: android listview

我遇到了Android 1.6的奇怪问题

我有一个具有ListView的应用程序(在Activity#1中找到)。

用户可以单击ListView中的一行,并进入第二个活动(活动#2)。

用户可以使用后退按钮返回ListView。

问题在于,如果用户在从活动#2返回后向下滚动列表,则应用程序崩溃,但不会留下传统的堆栈跟踪。

如果我看看LogCat,我会在崩溃前看到以下内容(见下文)。

另外一个奇怪的是,当我附加调试器以试图找出错误时,我无法重现错误!

关于LogCat在这里告诉我什么的想法?在下面显示的日志末尾附近有一小段表示“调试器自杀以释放僵尸!”,这听起来像一个记忆泄漏,但谷歌没有给我这个错误的运气。

关于下一步尝试的想法?

01-07 13:49:36.234: WARN/UsageStats(1018): Failed to persist new stats
01-07 13:49:37.570: INFO/DEBUG(10977): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-07 13:49:37.570: INFO/DEBUG(10977): Build fingerprint: 'verizon/voles/sholes/sholes:2.0.1/ESD56/20996:user/release-keys'
01-07 13:49:37.570: INFO/DEBUG(10977): pid: 12291, tid: 12292  >>> com.ggggg.dot <<<
01-07 13:49:37.570: INFO/DEBUG(10977): signal 11 (SIGSEGV), fault addr 00000004
01-07 13:49:37.570: INFO/DEBUG(10977):  r0 00000004  r1 40024108  r2 00000004  r3 4185dfd4
01-07 13:49:37.570: INFO/DEBUG(10977):  r4 00000000  r5 00000000  r6 40024108  r7 4185dfa8
01-07 13:49:37.570: INFO/DEBUG(10977):  r8 100ffcf8  r9 4185dfa0  10 4185df8c  fp 0013e8f8
01-07 13:49:37.570: INFO/DEBUG(10977):  ip ad36c2ec  sp 100ffce0  lr ad32995f  pc afb04524  cpsr 00000010
01-07 13:49:37.586: DEBUG/dalvikvm(12291): GC freed 2278 objects / 266992 bytes in 99ms
01-07 13:49:37.664: INFO/DEBUG(10977):          #00  pc 00004524  /system/lib/libcutils.so
01-07 13:49:37.688: INFO/DEBUG(10977):          #01  pc 0002995c  /system/lib/libandroid_runtime.so
01-07 13:49:37.688: INFO/DEBUG(10977):          #02  pc 00048cf4  /system/lib/libandroid_runtime.so
01-07 13:49:37.688: INFO/DEBUG(10977):          #03  pc 0000ecb4  /system/lib/libdvm.so
01-07 13:49:37.688: INFO/DEBUG(10977):          #04  pc 000387c4  /system/lib/libdvm.so
01-07 13:49:37.695: INFO/DEBUG(10977):          #05  pc 000139b8  /system/lib/libdvm.so
01-07 13:49:37.695: INFO/DEBUG(10977):          #06  pc 00019338  /system/lib/libdvm.so
01-07 13:49:37.695: INFO/DEBUG(10977):          #07  pc 00018804  /system/lib/libdvm.so
01-07 13:49:37.703: INFO/DEBUG(10977):          #08  pc 0004eea0  /system/lib/libdvm.so
01-07 13:49:37.703: INFO/DEBUG(10977):          #09  pc 0004eec8  /system/lib/libdvm.so
01-07 13:49:37.703: INFO/DEBUG(10977):          #10  pc 00044aaa  /system/lib/libdvm.so
01-07 13:49:37.703: INFO/DEBUG(10977):          #11  pc 00044b36  /system/lib/libdvm.so
01-07 13:49:37.711: INFO/DEBUG(10977):          #12  pc 00044fc0  /system/lib/libdvm.so
01-07 13:49:37.719: INFO/DEBUG(10977):          #13  pc 000425c4  /system/lib/libdvm.so
01-07 13:49:37.719: INFO/DEBUG(10977):          #14  pc 0000fd74  /system/lib/libc.so
01-07 13:49:37.719: INFO/DEBUG(10977):          #15  pc 0000f840  /system/lib/libc.so
01-07 13:49:37.719: INFO/DEBUG(10977): code around pc:
01-07 13:49:37.719: INFO/DEBUG(10977): afb04514 e8bd4010 e12fff1e e92d4010 e1a02000 
01-07 13:49:37.719: INFO/DEBUG(10977): afb04524 e5920000 e3e03a0f e28fe004 e2401001 
01-07 13:49:37.719: INFO/DEBUG(10977): afb04534 e243f03f 3afffff9 e2810001 e8bd4010 
01-07 13:49:37.719: INFO/DEBUG(10977): code around lr:
01-07 13:49:37.719: INFO/DEBUG(10977): ad32994c fffeb07c 00005e20 4604b510 f7f03004 
01-07 13:49:37.719: INFO/DEBUG(10977): ad32995c 2801ea4e 6060d104 68436820 47984620 
01-07 13:49:37.719: INFO/DEBUG(10977): ad32996c bf00bd10 461eb5f7 f1d24c1a bf380301 
01-07 13:49:37.719: INFO/DEBUG(10977): stack:
01-07 13:49:37.719: INFO/DEBUG(10977):     100ffca0  00000000  
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffca4  afe0f028  /system/lib/libc.so
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffca8  00000001  
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcac  300040ac  
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcb0  00000001  
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcb4  100ffd28  
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcb8  418cd52c  /dev/ashmem/dalvik-LinearAlloc (deleted)
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcbc  418cd52c  /dev/ashmem/dalvik-LinearAlloc (deleted)
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcc0  000002a4  
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcc4  ad061e8d  /system/lib/libdvm.so
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcc8  100ffd28  
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffccc  ad058201  /system/lib/libdvm.so
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcd0  40024108  /dev/ashmem/mspace/dalvik-heap/zygote/0 (deleted)
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcd4  0000000d  
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcd8  df002777  
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcdc  e3a070ad  
01-07 13:49:37.727: INFO/DEBUG(10977): #00 100ffce0  00000000  
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffce4  ad32995f  /system/lib/libandroid_runtime.so
01-07 13:49:37.727: INFO/DEBUG(10977): #01 100ffce8  100ffd18  
01-07 13:49:37.727: INFO/DEBUG(10977):     100ffcec  ad348cf9  /system/lib/libandroid_runtime.so
01-07 13:49:38.344: INFO/DEBUG(10977): debuggerd committing suicide to free the zombie!
01-07 13:49:38.352: INFO/ActivityManager(1018): Process com.ggggg.dot (pid 12291) has died.
01-07 13:49:38.359: INFO/WindowManager(1018): WIN DEATH: Window{44a51e60 com.ggggg.dot/com.ggggg.dot.Dot paused=false}
01-07 13:49:38.375: WARN/UsageStats(1018): Unexpected resume of com.android.launcher while already resumed in com.ggggg.dot
01-07 13:49:38.383: DEBUG/Zygote(986): Process 12291 terminated by signal (11)
01-07 13:49:38.391: INFO/DEBUG(12309): debuggerd: Nov 25 2009 17:44:54
01-07 13:49:38.406: WARN/InputManagerService(1018): Got RemoteException sending setActive(false) notification to pid 12291 uid 10078
01-07 13:50:06.844: DEBUG/dalvikvm(4885): GC freed 15 objects / 600 bytes in 113ms

3 个答案:

答案 0 :(得分:2)

您应该在http://code.google.com/p/android/issues/entry报告此类原生崩溃(选择“开发人员错误报告”模板)。包括你在这里所包含的内容,如果可以的话,请包括你的应用程序(或其有效成分),以便我们可以重现崩溃以找到问题并验证修复。

对于奇怪的堆栈跟踪,这是因为这是本机代码中的崩溃。谷歌开发人员拥有从那些“pc”(程序计数器)地址到符号的映射,因此我们可以找出本地代码中发生这种情况的位置。 (Typeface_unref,因为它发生,所以这似乎不太可能是Droid特定的。)

[僵尸“指的是崩溃的过程。 debuggerd只是告诉你它不是为了调试而离开它 - 它假设你是一个用户而只是想要继续你的生活而清除它。]

这个特殊的bug已经修复了;修复应该在2.1之后的第一个版本中。

答案 1 :(得分:1)

老兄,试着清除任何类型的缓存......特别是图片。 当您使用列表视图时,请尝试不要每次都针对convertview创建新视图

我遇到了类似的问题。这是我的帖子SIGNAL 11 SIGSEGV crash Android

答案 2 :(得分:0)

这是一个非常低级别的异常,表示Android本身存在错误。基于LogCat转储,该错误可能是DROID / Milestone的唯一,但我不确定。如果您确实在摩托罗拉设备上遇到此错误,我建议您在appropriate MOTODEV message board上发布堆栈跟踪,因为这将是调查问题的最快方法。