美好的一天,
我有一个关于使用SDK开发Android应用程序的问题。 我们的应用程序在Android 2.1 API Level 7下面临一个问题(至少在Android 2.1-update1模拟器和Motorola Droid X 2.1设备下)。 它崩溃和模拟器显示在logcat中只有关于崩溃的本机错误信息,没有任何java堆栈跟踪等。之后该应用程序尝试重新加载自身但再次崩溃。它在Android 2.2和2.3下运行良好。 我们的用户使用Android 2.1设备并解决了这个问题。
INFO/DEBUG(28): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
INFO/DEBUG(28): Build fingerprint: 'generic/sdk/generic/:2.1-update1/ECLAIR/35983:eng/test-keys'
INFO/DEBUG(28): pid: 230, tid: 239 >>> com.app <<<
INFO/DEBUG(28): signal 11 (SIGSEGV), fault addr 8050927c
INFO/DEBUG(28): r0 8000008b r1 80000088 r2 80509278 r3 005091f0
INFO/DEBUG(28): r4 afe38e08 r5 afe3b9bc r6 0000a000 r7 00000001
INFO/DEBUG(28): r8 4e592d80 r9 440f5db8 10 440f5da4 fp 0011fb90
INFO/DEBUG(28): ip ad2338d4 sp 4e592ce8 lr afe0f3b0 pc afe0b060 cpsr 00000030
INFO/DEBUG(28): #00 pc 0000b060 /system/lib/libc.so
INFO/DEBUG(28): #01 pc 00014630 /system/lib/libnativehelper.so
INFO/DEBUG(28): #02 pc 0000f1f4 /system/lib/libdvm.so
INFO/DEBUG(28): code around pc:
INFO/DEBUG(28): afe0b050 22016050 605a430a 4293e034 e18ed300
INFO/DEBUG(28): afe0b060 20016856 d1004206 2702e189 40351c3d
INFO/DEBUG(28): afe0b070 d0009506 483ce0ee 69851820 456246ac
INFO/DEBUG(28): code around lr:
INFO/DEBUG(28): afe0f3a0 e1a00005 e3a01001 e1a02004 ebfff980
INFO/DEBUG(28): afe0f3b0 e3500000 1a000001 ea000008 ebfff98a
INFO/DEBUG(28): afe0f3c0 e1a01004 e3a00002 ebfff985 e3500000
INFO/DEBUG(28): stack:
INFO/DEBUG(28): 4e592ca8 00000000
INFO/DEBUG(28): 4e592cac afe0f2c0 /system/lib/libc.so
INFO/DEBUG(28): 4e592cb0 00000340
INFO/DEBUG(28): 4e592cb4 ad080c00 /system/lib/libdvm.so
INFO/DEBUG(28): 4e592cb8 ad080c00 /system/lib/libdvm.so
INFO/DEBUG(28): 4e592cbc 4a38c098 /dev/ashmem/mspace/dalvik-heap/2 (deleted)
INFO/DEBUG(28): 4e592cc0 afe3bb74
INFO/DEBUG(28): 4e592cc4 afe0f3b0 /system/lib/libc.so
INFO/DEBUG(28): 4e592cc8 afe38e08 /system/lib/libc.so
INFO/DEBUG(28): 4e592ccc 005091f8 [heap]
INFO/DEBUG(28): 4e592cd0 00000003
INFO/DEBUG(28): 4e592cd4 000001b4
INFO/DEBUG(28): 4e592cd8 4e592d80
INFO/DEBUG(28): 4e592cdc 440f5db8
INFO/DEBUG(28): 4e592ce0 df002777
INFO/DEBUG(28): 4e592ce4 e3a070ad
INFO/DEBUG(28): #00 4e592ce8 4a38c0a8 /dev/ashmem/mspace/dalvik-heap/2 (deleted)
INFO/DEBUG(28): 4e592cec ad02e52b /system/lib/libdvm.so
INFO/DEBUG(28): 4e592cf0 ad07ecc0 /system/lib/libdvm.so
INFO/DEBUG(28): 4e592cf4 ad02b3e7 /system/lib/libdvm.so
INFO/DEBUG(28): 4e592cf8 00000026
INFO/DEBUG(28): 4e592cfc 00000190
INFO/DEBUG(28): 4e592d00 00002bb4
INFO/DEBUG(28): 4e592d04 00000000
INFO/DEBUG(28): 4e592d08 00000002
INFO/DEBUG(28): 4e592d0c ad02e489 /system/lib/libdvm.so
INFO/DEBUG(28): 4e592d10 0011fee8 [heap]
INFO/DEBUG(28): 4e592d14 00000001
INFO/DEBUG(28): 4e592d18 0000030c
INFO/DEBUG(28): 4e592d1c ad214633 /system/lib/libnativehelper.so
INFO/DEBUG(28): #01 4e592d20 ad066a24 /system/lib/libdvm.so
INFO/DEBUG(28): 4e592d24 005091f8 [heap]
INFO/DEBUG(28): 4e592d28 00126778 [heap]
INFO/DEBUG(28): 4e592d2c 000002b4
INFO/DEBUG(28): 4e592d30 4a38c0a8 /dev/ashmem/mspace/dalvik-heap/2 (deleted)
INFO/DEBUG(28): 4e592d34 000002b4
INFO/DEBUG(28): 4e592d38 4a324b90 /dev/ashmem/mspace/dalvik-heap/2 (deleted)
INFO/DEBUG(28): 4e592d3c 4a480848 /dev/ashmem/mspace/dalvik-heap/2 (deleted)
INFO/DEBUG(28): 4e592d40 4a38c098 /dev/ashmem/mspace/dalvik-heap/2 (deleted)
INFO/DEBUG(28): 4e592d44 00000000
INFO/DEBUG(28): 4e592d48 000f41e8 [heap]
INFO/DEBUG(28): 4e592d4c 00043693 [heap]
INFO/DEBUG(28): 4e592d50 ad07ff50 /system/lib/libdvm.so
INFO/DEBUG(28): 4e592d54 4e592da0
INFO/DEBUG(28): 4e592d58 00000004
INFO/DEBUG(28): 4e592d5c 4000cf38 /dev/ashmem/mspace/dalvik-heap/zygote/0 (deleted)
INFO/DEBUG(28): 4e592d60 440f5dd4
INFO/DEBUG(28): 4e592d64 ad00f1f8 /system/lib/libdvm.so
DEBUG/Zygote(30): Process 230 terminated by signal (11)
INFO/ActivityManager(61): Process com.app (pid 230) has died.
INFO/WindowManager(61): WIN DEATH: Window{49f36c78 com.app/com.app.core.Tabs paused=false}
INFO/WindowManager(61): WIN DEATH: Window{49f59388 com.app/com.app.activities.Game paused=false}
INFO/ActivityManager(61): Start proc com.app for activity com.app/.core.Tabs: pid=293 uid=10028 gids={3003}
DEBUG/ddm-heap(293): Got feature list request
INFO/UsageStats(61): Unexpected resume of com.app while already resumed in com.app
我试图通过谷歌搜索找到答案,但没有得到任何好的建议。很难理解这种错误的真正原因是什么。如何调试和解决?
感谢您的反馈! 干杯!
答案 0 :(得分:2)
在退出带有TimerTask的录音模块后,我收到了信号11(SIGSEGV)和以下的WIN DEATH:
micTimer.schedule(new TimerTask(){
@Override
public void run(){
int x = mediaRecorder.getMaxAmplitude();
Message msg = new Message();
msg.obj = x;
mHandler.sendMessage(msg);
}
}, 0, 100);
在我的stopRecording()方法中使用micTimer.cancel()终止。解决它需要一些时间。我从this solution得到了一个提示,并认为在我的情况下,相当于clearCache()的是micTimer.purge()之后的micTimer.purge()。这解决了这个问题。
所以我猜你需要清理缓存,清除队列,回收位图,GC ...