Android App closes automatically - Native code crash?
I've a very simple / minimal code Android application. I'm drawing some lines on screen with my finger.
At some point, app closes itself / exists automatically. No exception is thrown.
I'm really stuck. Any help / idea is highly appreciated!
Thanks in advance/
07-12 23:13:54.264: DEBUG/dalvikvm(3638): GC_EXPLICIT freed 3102 objects / 163096 bytes in 48ms
07-12 23:14:08.394: DEBUG/dalvikvm(3638): GC_EXPLICIT freed 438 objects / 22696 bytes in 99ms
07-12 23:14:09.324: DEBUG/dalvikvm(3638): GC_EXPLICIT freed 2697 objects / 142112 bytes in 73ms
07-12 23:14:15.434: INFO/DEBUG(11269): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-12 23:14:15.434: INFO/DEBUG(11269): Build fingerprint: 'google/passion/passion/mahimahi:2.2/FRF91/43546:user/release-keys'
07-12 23:14:15.434: INFO/DEBUG(11269): pid: 11450, tid: 11450 >>> com.mypackage.name <<<
07-12 23:14:15.434: INFO/DEBUG(11269): signal 11 (SIGSEGV), fault addr a001fac5
07-12 23:14:15.434: INFO/DEBUG(11269): r0 44992640 r1 0000004b r2 41a278e8 r3 0003ae50
07-12 23:14:15.434: INFO/DEBUG(11269): r4 44992640 r5 a001fac5 r6 0000015b r7 00002072
07-12 23:14:15.434: INFO/DEBUG(11269): r8 80816fc0 r9 00000004 10 00000000 fp bebf2868
07-12 23:14:15.434: INFO/DEBUG(11269): ip 112648cb sp bebf2564 lr 80818c6c pc 80844380 cpsr 20000030
07-12 23:14:15.434: INFO/DEBUG(11269): d0 643a64696f72646e d1 6472656767756265
07-12 23:14:15.434: INFO/DEBUG(11269): d2 0064006e0069000f d3 0065005300770046
07-12 23:14:15.434: INFO/DEBUG(11269): d4 0001310600012f24 d5 0000688700006731
07-12 23:14:15.434: INFO/DEBUG(11269): d6 4398835b4398835b d7 4100000042d52ee0
07-12 23:14:15.434: INFO/DEBUG(11269): d8 44994138439a088a d9 0002405342d3c247
07-12 23:14:15.434: INFO/DEBUG(11269): d10 4499413842d3c247 d11 00000000439a088a
07-12 23:14:15.434: INFO/DEBUG(11269): d12 0000000000000000 d13 0000000000000000
07-12 23:14:15.434: INFO/DEBUG(11269): d14 0000000000000000 d15 0000000000000000
07-12 23:14:15.434: INFO/DEBUG(11269): d16 00000000449993e0 d17 4027a05400000000
07-12 23:14:15.434: INFO/DEBUG(11269): d18 0707070703030303 d19 f0f0f0f0f0f0f0f0
07-12 23:14:15.434: INFO/DEBUG(11269): d20 0100010001000100 d21 0100010001000100
07-12 23:14:15.434: INFO/DEBUG(11269): d22 f0f0f0f0f0f0f0f0 d23 f000f000f000f000
07-12 23:14:15.434: INFO/DEBUG(11269): d24 f00开发者_Python百科0f000f000f000 d25 f000f000f000f000
07-12 23:14:15.434: INFO/DEBUG(11269): d26 0100010001000100 d27 0100010001000100
07-12 23:14:15.434: INFO/DEBUG(11269): d28 0100010001000100 d29 0100010001000100
07-12 23:14:15.434: INFO/DEBUG(11269): d30 0000000000000000 d31 3fe5555555555555
07-12 23:14:15.434: INFO/DEBUG(11269): scr 20000012
07-12 23:14:15.514: INFO/DEBUG(11269): #00 pc 00044380 /system/lib/libdvm.so
07-12 23:14:15.514: INFO/DEBUG(11269): #01 lr 80818c6c /system/lib/libdvm.so
07-12 23:14:15.514: INFO/DEBUG(11269): code around pc:
07-12 23:14:15.514: INFO/DEBUG(11269): 80844360 c064f8d0 f8dcb510 47983028 bf00bd10
07-12 23:14:15.514: INFO/DEBUG(11269): 80844370 699db5f0 0c90ea81 f00c460e 4604017f
07-12 23:14:15.514: INFO/DEBUG(11269): 80844380 b0856828 19c5010f f8d559c1 42a1c00c
07-12 23:14:15.514: INFO/DEBUG(11269): 80844390 6869d10e d10b42b1 0f01f01c d10268af
07-12 23:14:15.514: INFO/DEBUG(11269): 808443a0 458468e8 4620d013 eb54f7dd e00e4607
07-12 23:14:15.514: INFO/DEBUG(11269): code around lr:
07-12 23:14:15.514: INFO/DEBUG(11269): 80818c4c e5054008 e7950102 e5963014 e3500000
07-12 23:14:15.514: INFO/DEBUG(11269): 80818c5c e5962010 0a000cc1 e5900000 fa00adc0
07-12 23:14:15.514: INFO/DEBUG(11269): 80818c6c e3500000 0a000c64 ea000bef e320f000
07-12 23:14:15.514: INFO/DEBUG(11269): 80818c7c e320f000 eb000cbe e320f000 e320f000
07-12 23:14:15.514: INFO/DEBUG(11269): 80818c8c e320f000 e320f000 e320f000 e320f000
07-12 23:14:15.514: INFO/DEBUG(11269): stack:
07-12 23:14:15.514: INFO/DEBUG(11269): bebf2524 00000001
07-12 23:14:15.514: INFO/DEBUG(11269): bebf2528 00000007
07-12 23:14:15.514: INFO/DEBUG(11269): bebf252c 4186be10
07-12 23:14:15.514: INFO/DEBUG(11269): bebf2530 80816fc0 /system/lib/libdvm.so
07-12 23:14:15.514: INFO/DEBUG(11269): bebf2534 8084e5cb /system/lib/libdvm.so
07-12 23:14:15.514: INFO/DEBUG(11269): bebf2538 0000ccc8 [heap]
07-12 23:14:15.514: INFO/DEBUG(11269): bebf253c 418a76ec /dev/ashmem/dalvik-LinearAlloc (deleted)
07-12 23:14:15.514: INFO/DEBUG(11269): bebf2540 00000000
07-12 23:14:15.514: INFO/DEBUG(11269): bebf2544 afd10280 /system/lib/libc.so
07-12 23:14:15.514: INFO/DEBUG(11269): bebf2548 00000001
07-12 23:14:15.514: INFO/DEBUG(11269): bebf254c 4186be24
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2550 bebf25c0 [stack]
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2554 0000131e
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2558 df002777
07-12 23:14:15.524: INFO/DEBUG(11269): bebf255c e3a070ad
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2560 00000000
07-12 23:14:15.524: INFO/DEBUG(11269): #00 bebf2564 42af93dc /system/framework/android.policy.odex
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2568 4186bdb8
07-12 23:14:15.524: INFO/DEBUG(11269): bebf256c bebf25c0 [stack]
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2570 00002072
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2574 80818c6c /system/lib/libdvm.so
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2578 44994138 /dev/ashmem/mspace/dalvik-heap/2 (deleted)
07-12 23:14:15.524: INFO/DEBUG(11269): bebf257c bebf25c0 [stack]
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2580 00230030 [heap]
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2584 0000ccd0 [heap]
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2588 00035fa8 [heap]
07-12 23:14:15.524: INFO/DEBUG(11269): bebf258c 0000039c
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2590 808a12e0 /system/lib/libdvm.so
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2594 808a5ed8 /system/lib/libdvm.so
07-12 23:14:15.524: INFO/DEBUG(11269): bebf2598 bebf2868 [stack]
07-12 23:14:15.524: INFO/DEBUG(11269): bebf259c 80822758 /system/lib/libdvm.so
07-12 23:14:15.524: INFO/DEBUG(11269): bebf25a0 0000ccc8 [heap]
07-12 23:14:15.524: INFO/DEBUG(11269): bebf25a4 bebf25c0 [stack]
07-12 23:14:15.524: INFO/DEBUG(11269): bebf25a8 808226dc /system/lib/libdvm.so
07-12 23:14:15.894: INFO/ActivityManager(87): Process com.mypackage.name (pid 11450) has died.
07-12 23:14:15.904: INFO/WindowManager(87): WIN DEATH: Window{44c2c2b8 com.mypackage.name/com.mypackage.name.Game paused=false}
07-12 23:14:15.904: INFO/WindowManager(87): WIN DEATH: Window{44c95808 SurfaceView paused=false}
07-12 23:14:15.924: INFO/UsageStats(87): Unexpected resume of android while already resumed in com.mypackage.name
07-12 23:14:15.954: DEBUG/Zygote(58): Process 11450 terminated by signal (11)
Thanks to ognian, it's solved: The problem was drawing on Canvas object from 2 different threads.
I was playing around Android's FingerPaint.java
SDK sample and it's accessing Canvas within onTouchEvent
. However I was also using SurfaceView
and drawing on Canvas within my animation thread.
Therefore removing Canvas object access from onTouchEvent
(main app thread) solved the problem.
Thanks.
For the next segfault in a native app (signal 11 (SIGSEGV)), you could use the ndk-tool ndk-stack. It uses the native code objectfiles and the logcat output to generate you a c/c++ stacktrace, which is quite helpful sometimes.
See for example here: http://www.codexperiments.com/android/2010/08/tips-tricks-debugging-android-ndk-stack-traces/
精彩评论