web-dev-qa-db-ja.com

Android致命的なシグナル11(SIGSEGV)at 0x00000040(code = 1)エラー

私はAndroidアプリケーションに取り組んでいます。ユーザーに写真画像(5画像)を取得しています(顔検出付きのopencv2.4.2カメラを使用)そして自分に保存しますWebサービスを使用するサーバー内のデータベース。このために、Opencv2.4.2顔検出サンプルを使用しています。WebサービスにはKsoap2です。私のAndroid エミュレーターおよびdevice(Android 4.0.4)アプリケーションは正常に動作しています。しかし、別のデバイス(Android 4.0.)で確認すると、"残念ながら、 Myappが停止しました "。以下にログファイルを添付しました。何が問題なのかわかりません。これに関する提案をいただければ幸いです。

Log:
I/Sample::SurfaceView(  746): Frame started with loop
I/Sample::FdView(  746): processFrame with face and ok started!
I/Sample::FdView(  746): area: 80089
D/dalvikvm(  746): GC_FOR_ALLOC freed 1202K, 20% free 7337K/9159K, paused 51ms
I/dalvikvm-heap(  746): Grow heap (frag case) to 8.496MB for 1228816-byte allocation
D/dalvikvm(  746): GC_CONCURRENT freed <1K, 7% free 8537K/9159K, paused 2ms+4ms
I/Sample::SurfaceView(  746): bmp.recycle()
I/Sample::SurfaceView(  746): Frame started with loop
I/Sample::FdView(  746): processFrame with face and ok started!
I/Sample::FdView(  746): area: 83521
D/dalvikvm(  746): GC_FOR_ALLOC freed 1202K, 20% free 7337K/9159K, paused 50ms
I/dalvikvm-heap(  746): Grow heap (frag case) to 8.496MB for 1228816-byte allocation
D/dalvikvm(  746): GC_CONCURRENT freed <1K, 7% free 8537K/9159K, paused 3ms+3ms
I/Sample::SurfaceView(  746): bmp.recycle()
I/Sample::SurfaceView(  746): Frame started with loop
I/OpenCV_NativeCamera(  746): ### Camera FPS ### [2190] Frames, 9.10 FPS
I/Sample::FdView(  746): processFrame with face and ok started!
I/Sample::FdView(  746): area: 87025
D/dalvikvm(  746): GC_FOR_ALLOC freed 1202K, 20% free 7337K/9159K, paused 30ms
I/dalvikvm-heap(  746): Grow heap (frag case) to 8.495MB for 1228816-byte allocation
F/libc    (  746): Fatal signal 11 (SIGSEGV) at 0x00000040 (code=1)
I/wpa_supplicant(  421): [CTRL_IFACE]SIGNAL_POLL
I/DEBUG   (   83): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (   83): Build fingerprint: 'softwinners/crane_q7/crane-q7:4.0.3/IML74K/20120709:eng/test-keys'
I/DEBUG   (   83): pid: 746, tid: 747  >>> com.test.mailconf <<<
I/DEBUG   (   83): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000040
I/DEBUG   (   83):  r0 00000020  r1 000106e0  r2 000106e0  r3 409d51e8
I/DEBUG   (   83):  r4 41140d88  r5 40896c58  r6 00000000  r7 000106e0
I/DEBUG   (   83):  r8 41140d00  r9 000106e0  10 41140e00  fp 40822394
I/DEBUG   (   83):  ip 00000011  sp 100ffdd0  lr 40811fc4  pc 40821fac  cpsr 80000010
I/DEBUG   (   83):  d0  0000000000000000  d1  0000000000000000
I/DEBUG   (   83):  d2  0000000000000000  d3  0000000000000000
I/DEBUG   (   83):  d4  0000000000000000  d5  0000000000000000
I/DEBUG   (   83):  d6  0000000000000000  d7  0000000000000000
I/DEBUG   (   83):  d8  0000000000000000  d9  0000000000000000
I/DEBUG   (   83):  d10 0000000000000000  d11 0000000000000000
I/DEBUG   (   83):  d12 0000000000000000  d13 0000000000000000
I/DEBUG   (   83):  d14 0000000000000000  d15 0000000000000000
I/DEBUG   (   83):  d16 0000000000000000  d17 991f1f1f991f1f1f
I/DEBUG   (   83):  d18 0707070703030303  d19 0000000000000000
I/DEBUG   (   83):  d20 0100010001000100  d21 0100010001000100
I/DEBUG   (   83):  d22 0000000000000000  d23 0000000000000000
I/DEBUG   (   83):  d24 0000000000000000  d25 0000000000000000
I/DEBUG   (   83):  d26 0067006700670067  d27 0067006700670067
I/DEBUG   (   83):  d28 0067006700670067  d29 0067006700670067
I/DEBUG   (   83):  d30 00308000002b4000  d31 003b40000035c000
I/DEBUG   (   83):  scr 80000012
I/DEBUG   (   83):
I/DEBUG   (   83):          #00  pc 00042fac  /system/lib/libdvm.so
I/DEBUG   (   83):          #01  pc 00032fc0  /system/lib/libdvm.so (_Z21dvmHeapBitmapScanWalkP10HeapBitmapPFvP6ObjectPvS3_ES3_)
I/DEBUG   (   83):          #02  pc 000433c4  /system/lib/libdvm.so (_Z24dvmHeapScanMarkedObjectsv)
I/DEBUG   (   83):          #03  pc 00033694  /system/lib/libdvm.so (_Z25dvmCollectGarbageInternalPK6GcSpec)
I/DEBUG   (   83):          #04  pc 0007ba40  /system/lib/libdvm.so
I/DEBUG   (   83):          #05  pc 0005f656  /system/lib/libdvm.so
I/DEBUG   (   83):          #06  pc 00012be4  /system/lib/libc.so (__thread_entry)
I/DEBUG   (   83):          #07  pc 00012738  /system/lib/libc.so (pthread_create)
I/DEBUG   (   83):
I/DEBUG   (   83): code around pc:
I/DEBUG   (   83): 40821f8c e1a04000 e59f01e0 e1a07001 e79f5000  [email protected]..
I/DEBUG   (   83): 40821f9c e5940000 e59530b0 e1500003 0a00003a  ......0....P.:...
I/DEBUG   (   83): 40821fac e590c020 e31c0101 0a000011 ebfffeb9   ...............
I/DEBUG   (   83): 40821fbc e5940000 e5903020 e3130202 08bd81f0  ..... 0..........
I/DEBUG   (   83): 40821fcc e594e008 e2846010 e35e0000 08bd81f0  ......`....^.....
I/DEBUG   (   83):
I/DEBUG   (   83): code around lr:
I/DEBUG   (   83): 40811fa4 e0888404 e16fcf16 e58d3004 e1a0100a  .......o..0......
I/DEBUG   (   83): 40811fb4 e1a02009 e1c66c33 e088018c e12fff3b  .. ..3l......;./.
I/DEBUG   (   83): 40811fc4 e3560000 e59d3004 1afffff5 e5971010  ...V..0..........
I/DEBUG   (   83): 40811fd4 e597800c e068e001 e1a0142e e2844001  .......h......@..
I/DEBUG   (   83): 40811fe4 e2855c01 e1510004 2affffe7 e28dd00c  ..\....Q....*....
I/DEBUG   (   83):
I/DEBUG   (   83): stack:
I/DEBUG   (   83):     100ffd90  00000000 
I/DEBUG   (   83):     100ffd94  40891f90  /system/lib/libdvm.so
I/DEBUG   (   83):     100ffd98  000106e0  [heap]
I/DEBUG   (   83):     100ffd9c  40f9af88  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (   83):     100ffda0  000106e0  [heap]
I/DEBUG   (   83):     100ffda4  4115c378  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (   83):     100ffda8  1e000000 
I/DEBUG   (   83):     100ffdac  80000000 
I/DEBUG   (   83):     100ffdb0  40b6e980  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (   83):     100ffdb4  40821f28  /system/lib/libdvm.so
I/DEBUG   (   83):     100ffdb8  4113fef8  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (   83):     100ffdbc  40896c58  /system/lib/libdvm.so
I/DEBUG   (   83):     100ffdc0  4113ff28  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (   83):     100ffdc4  40896c58  /system/lib/libdvm.so
I/DEBUG   (   83):     100ffdc8  df0027ad 
I/DEBUG   (   83):     100ffdcc  00000000 
I/DEBUG   (   83): #00 100ffdd0  000076bd 
I/DEBUG   (   83):     100ffdd4  0076be00 
I/DEBUG   (   83):     100ffdd8  00000000 
I/DEBUG   (   83):     100ffddc  0001079c  [heap]
I/DEBUG   (   83):     100ffde0  41140d00  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (   83):     100ffde4  40811fc4  /system/lib/libdvm.so
I/DEBUG   (   83): #01 100ffde8  40896c58  /system/lib/libdvm.so
I/DEBUG   (   83):     100ffdec  80000000 
I/DEBUG   (   83):     100ffdf0  ffffffff 
I/DEBUG   (   83):     100ffdf4  000106c8  [heap]
I/DEBUG   (   83):     100ffdf8  000106e0  [heap]
I/DEBUG   (   83):     100ffdfc  40891f90  /system/lib/libdvm.so
I/DEBUG   (   83):     100ffe00  fffffe4c 
I/DEBUG   (   83):     100ffe04  7fffffff 
I/DEBUG   (   83):     100ffe08  00000000 
I/DEBUG   (   83):     100ffe0c  001187aa  [heap]
I/DEBUG   (   83):     100ffe10  40896c58  /system/lib/libdvm.so
I/DEBUG   (   83):     100ffe14  408223c8  /system/lib/libdvm.so
I/BootReceiver(  144): Copying /data/tombstones/tombstone_06 to DropBox (SYSTEM_TOMBSTONE)
I/DEBUG   (   83): debuggerd committing suicide to free the zombie!
E/PreviewWindow(   87): onNextFrameAvailableSW: Unable to dequeue preview window buffer: 32 -> Broken pipe
W/PreviewWindow(   87): now undequeued: 0
D/V4L2CameraDevice(   87): stopDevice
D/CallbackNotifier(   87): storeMetaDataInBuffers, false
W/InputDispatcher(  144): channel '412a85d8 com.test.mailconf/org.opencv.samples.fd.FdActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
E/InputDispatcher(  144): channel '412a85d8 com.test.mailconf/org.opencv.samples.fd.FdActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
D/Zygote  (   85): Process 746 terminated by signal (11)
I/DEBUG   ( 1232): debuggerd: Jul  9 2012 16:58:08
D/dalvikvm(  144): GC_FOR_ALLOC freed 504K, 13% free 8435K/9607K, paused 159ms
D/V4L2CameraDevice(   87): cedarx_hardware_exit ok
W/CameraService(   87): native_window_api_disconnect failed: Broken pipe (-32), api: 6
I/CameraService(   87): Destroying camera 0
D/CallbackNotifier(   87): storeMetaDataInBuffers, false
W/AudioFlinger(   87): session id 10 not found for pid 87
W/AudioFlinger(   87): session id 11 not found for pid 87
I/ActivityManager(  144): Process com.test.mailconf (pid 746) has died.
W/ActivityManager(  144): Force removing ActivityRecord{411a5a60 com.test.mailconf/org.opencv.samples.fd.FdActivity}: app died, no saved state
I/WindowManager(  144): WIN DEATH: Window{41129938 com.test.mailconf/org.opencv.samples.fd.FdActivity paused=false}
W/WindowManager(  144): Force-removing child win Window{4127d538 SurfaceView paused=false} from container Window{41129938 com.test.mailconf/org.opencv.samples.fd.FdActivity paused=false}
W/InputDispatcher(  144): Attempted to unregister already unregistered input channel '412a85d8 com.test.mailconf/org.opencv.samples.fd.FdActivity (server)'
I/WindowManager(  144): WIN DEATH: Window{412a85d8 com.test.mailconf/org.opencv.samples.fd.FdActivity paused=false}
I/WindowManager(  144): WIN DEATH: Window{4117d5c0  paused=false}
W/WindowManager(  144): Failed looking up window
W/WindowManager(  144): Java.lang.IllegalArgumentException: Requested window Android.os.BinderProxy@41192d98 does not exist
W/WindowManager(  144): at com.Android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.Java:7156)
W/WindowManager(  144): at com.Android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.Java:7147)
W/WindowManager(  144): at com.Android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.Java:1529)
W/WindowManager(  144): at Android.os.BinderProxy.sendDeathNotice(Binder..Java:417)
W/WindowManager(  144): at dalvik.system.NativeStart.run(Native Method)
I/WindowManager(  144): WIN DEATH: null
I/WindowManager(  144): WINDOW DIED Window{412a85d8 com.test.mailconf/org.opencv.samples.fd.FdActivity paused=false}
D/Activity(  338): pckname = com.Android.launcher mComponent = com.Android.launcher2.Launcher
I/wpa_supplicant(  421): [CTRL_IFACE]SIGNAL_POLL
14
SKK

あなたはsegfaulted。これは、合法的にアクセスできなかったメモリにアクセスしたことを意味します。アドレスが非常に低いため、ほぼ確実に、nullポインタの逆参照またはnull配列へのアクセスの試行が原因です。実際のクラッシュはdalvikヒープで発生しています。したがって、どういうわけか、ヒープにnullを渡すか、ヒープが使用していたものを上書きしました。

これは、dalvikがリリースされて再利用されたと考えたJNI呼び出しの上書きメモリを介して発生した可能性があります。

27
Gabe Sechan