помочь запустить OpenCV на Android - PullRequest
2 голосов
/ 09 января 2011

Я пытаюсь запустить этот образец opencv для Android отсюда. http://code.google.com/p/android-opencv/

Я очень внимательно следовал инструкциям и успешно собрал opencv и CVCamera из примеров. Затем я настроил opencv как проект библиотеки Android и сослался на него из CVCamera.

Когда я устанавливаю приложение в эмулятор и запускаю его, я не получаю никаких ошибок. Приложение фокусируется и сразу теряет фокус и, похоже, прекращает работу. Вот сообщения DDMS. Есть идеи, почему он не работает?

01-09 07:36:32.503: INFO/ActivityManager(53): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.theveganrobot.cvcamera/.CVCamera }
01-09 07:36:32.593: INFO/ActivityManager(53): Start proc com.theveganrobot.cvcamera for activity com.theveganrobot.cvcamera/.CVCamera: pid=230 uid=10024 gids={1006, 1015}
01-09 07:36:32.913: DEBUG/ddm-heap(230): Got feature list request
01-09 07:36:32.983: INFO/WindowManager(53): Setting rotation to 1, animFlags=0
01-09 07:36:33.073: INFO/ActivityManager(53): Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=3/1 orien=2 layout=18}
01-09 07:36:33.363: DEBUG/dalvikvm(230): Trying to load lib /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so 0x43d0bb68
01-09 07:36:33.493: INFO/DEBUG(28): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-09 07:36:33.503: INFO/DEBUG(28): Build fingerprint: 'generic/sdk/generic/:2.1-update1/ECLAIR/35983:eng/test-keys'
01-09 07:36:33.503: INFO/DEBUG(28): pid: 230, tid: 230  >>> com.theveganrobot.cvcamera <<<
01-09 07:36:33.503: INFO/DEBUG(28): signal 4 (SIGILL), fault addr 80d763a4
01-09 07:36:33.503: INFO/DEBUG(28):  r0 00000000  r1 80e0cbb8  r2 80ca9199  r3 80cb1839
01-09 07:36:33.503: INFO/DEBUG(28):  r4 000efdf0  r5 80e6fa24  r6 00000004  r7 00000000
01-09 07:36:33.503: INFO/DEBUG(28):  r8 ad00f380  r9 0000bd00  10 4104bbe8  fp 00000000
01-09 07:36:33.503: INFO/DEBUG(28):  ip 80e66208  sp becb4600  lr 80ca94c7  pc 80d763a4  cpsr 60000030
01-09 07:36:33.603: INFO/DEBUG(28):          #00  pc 001763a4  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.603: INFO/DEBUG(28):          #01  pc 000a94c2  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.613: INFO/DEBUG(28):          #02  pc b00001fc  /system/bin/linker
01-09 07:36:33.613: INFO/DEBUG(28):          #03  pc b00002bc  /system/bin/linker
01-09 07:36:33.613: INFO/DEBUG(28):          #04  pc b00018a4  /system/bin/linker
01-09 07:36:33.624: INFO/DEBUG(28):          #05  pc b0001b70  /system/bin/linker
01-09 07:36:33.624: INFO/DEBUG(28):          #06  pc b0001552  /system/bin/linker
01-09 07:36:33.624: INFO/DEBUG(28):          #07  pc b0001cbc  /system/bin/linker
01-09 07:36:33.624: INFO/DEBUG(28):          #08  pc 0003cdfc  /system/lib/libdvm.so
01-09 07:36:33.624: INFO/DEBUG(28):          #09  pc 0005416a  /system/lib/libdvm.so
01-09 07:36:33.634: INFO/DEBUG(28):          #10  pc 00013f58  /system/lib/libdvm.so
01-09 07:36:33.644: INFO/DEBUG(28):          #11  pc 00019888  /system/lib/libdvm.so
01-09 07:36:33.644: INFO/DEBUG(28):          #12  pc 00018d5c  /system/lib/libdvm.so
01-09 07:36:33.644: INFO/DEBUG(28):          #13  pc 0004d6d0  /system/lib/libdvm.so
01-09 07:36:33.644: INFO/DEBUG(28):          #14  pc 0004d702  /system/lib/libdvm.so
01-09 07:36:33.654: INFO/DEBUG(28):          #15  pc 00058232  /system/lib/libdvm.so
01-09 07:36:33.654: INFO/DEBUG(28):          #16  pc 00059ab4  /system/lib/libdvm.so
01-09 07:36:33.664: INFO/DEBUG(28):          #17  pc 00010fe8  /system/lib/libdvm.so
01-09 07:36:33.674: INFO/DEBUG(28):          #18  pc 00019888  /system/lib/libdvm.so
01-09 07:36:33.674: INFO/DEBUG(28):          #19  pc 00018d5c  /system/lib/libdvm.so
01-09 07:36:33.683: INFO/DEBUG(28):          #20  pc 0004d6d0  /system/lib/libdvm.so
01-09 07:36:33.683: INFO/DEBUG(28):          #21  pc 0004d702  /system/lib/libdvm.so
01-09 07:36:33.683: INFO/DEBUG(28):          #22  pc 00053ce4  /system/lib/libdvm.so
01-09 07:36:33.694: INFO/DEBUG(28):          #23  pc 00013f58  /system/lib/libdvm.so
01-09 07:36:33.694: INFO/DEBUG(28):          #24  pc 00019888  /system/lib/libdvm.so
01-09 07:36:33.703: INFO/DEBUG(28):          #25  pc 00018d5c  /system/lib/libdvm.so
01-09 07:36:33.703: INFO/DEBUG(28):          #26  pc 0004d3bc  /system/lib/libdvm.so
01-09 07:36:33.703: INFO/DEBUG(28):          #27  pc 00054e74  /system/lib/libdvm.so
01-09 07:36:33.703: INFO/DEBUG(28):          #28  pc 00013f58  /system/lib/libdvm.so
01-09 07:36:33.703: INFO/DEBUG(28):          #29  pc 00019888  /system/lib/libdvm.so
01-09 07:36:33.714: INFO/DEBUG(28):          #30  pc 00018d5c  /system/lib/libdvm.so
01-09 07:36:33.734: INFO/DEBUG(28):          #31  pc 0004d6d0  /system/lib/libdvm.so
01-09 07:36:33.734: INFO/DEBUG(28): code around pc:
01-09 07:36:33.734: INFO/DEBUG(28): 80d76394 b08bb530 46054c10 20009306 bf009b10 
01-09 07:36:33.734: INFO/DEBUG(28): 80d763a4 0c00f20f 44649000 f04f9003 93090c28 
01-09 07:36:33.734: INFO/DEBUG(28): 80d763b4 90029b0e f8cd4668 9307c004 91049b0f 
01-09 07:36:33.734: INFO/DEBUG(28): code around lr:
01-09 07:36:33.734: INFO/DEBUG(28): 80ca94b4 480f1861 58e318a2 90021820 f0cc4628 
01-09 07:36:33.734: INFO/DEBUG(28): 80ca94c4 4b0cff67 58e14628 58e24b0b ec24f7b1 
01-09 07:36:33.734: INFO/DEBUG(28): 80ca94d4 bd30b005 001bccfc ffe445c1 00000264 
01-09 07:36:33.744: INFO/DEBUG(28): stack:
01-09 07:36:33.744: INFO/DEBUG(28):     becb45c0  b000fd00  /system/bin/linker
01-09 07:36:33.744: INFO/DEBUG(28):     becb45c4  80e660c0  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.744: INFO/DEBUG(28):     becb45c8  00000000  
01-09 07:36:33.780: INFO/DEBUG(28):     becb45cc  b0000559  /system/bin/linker
01-09 07:36:33.784: INFO/DEBUG(28):     becb45d0  0000001b  
01-09 07:36:33.784: INFO/DEBUG(28):     becb45d4  aca01df2  /system/lib/libGLESv2.so
01-09 07:36:33.784: INFO/DEBUG(28):     becb45d8  b00163f8  
01-09 07:36:33.784: INFO/DEBUG(28):     becb45dc  b00032e8  /system/bin/linker
01-09 07:36:33.784: INFO/DEBUG(28):     becb45e0  b00129d8  
01-09 07:36:33.784: INFO/DEBUG(28):     becb45e4  becb45fc  [stack]
01-09 07:36:33.784: INFO/DEBUG(28):     becb45e8  80c3b080  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.784: INFO/DEBUG(28):     becb45ec  b000fac4  /system/bin/linker
01-09 07:36:33.794: INFO/DEBUG(28):     becb45f0  afe42c7c  
01-09 07:36:33.794: INFO/DEBUG(28):     becb45f4  afe0f3b0  /system/lib/libc.so
01-09 07:36:33.794: INFO/DEBUG(28):     becb45f8  df002777  
01-09 07:36:33.794: INFO/DEBUG(28):     becb45fc  e3a070ad  
01-09 07:36:33.794: INFO/DEBUG(28): #00 becb4600  00000000  
01-09 07:36:33.794: INFO/DEBUG(28):     becb4604  afe0f2c0  /system/lib/libc.so
01-09 07:36:33.794: INFO/DEBUG(28):     becb4608  00000000  
01-09 07:36:33.794: INFO/DEBUG(28):     becb460c  00000001  
01-09 07:36:33.794: INFO/DEBUG(28):     becb4610  00001000  
01-09 07:36:33.804: INFO/DEBUG(28):     becb4614  80c5bbdc  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.804: INFO/DEBUG(28):     becb4618  80caa5a1  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.804: INFO/DEBUG(28):     becb461c  afe23043  /system/lib/libc.so
01-09 07:36:33.804: INFO/DEBUG(28):     becb4620  00000000  
01-09 07:36:33.804: INFO/DEBUG(28):     becb4624  afe179a5  /system/lib/libc.so
01-09 07:36:33.804: INFO/DEBUG(28):     becb4628  00000000  
01-09 07:36:33.804: INFO/DEBUG(28):     becb462c  80e66198  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.804: INFO/DEBUG(28):     becb4630  80e6fa24  
01-09 07:36:33.804: INFO/DEBUG(28):     becb4634  80ca94c7  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.804: INFO/DEBUG(28): #01 becb4638  80caa759  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.804: INFO/DEBUG(28):     becb463c  80ca91bd  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.804: INFO/DEBUG(28):     becb4640  80cb1839  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.804: INFO/DEBUG(28):     becb4644  80e63bf8  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.804: INFO/DEBUG(28):     becb4648  00000004  
01-09 07:36:33.804: INFO/DEBUG(28):     becb464c  80e63bfc  /data/data/com.theveganrobot.cvcamera/lib/libandroid-opencv.so
01-09 07:36:33.804: INFO/DEBUG(28):     becb4650  00000003  
01-09 07:36:33.804: INFO/DEBUG(28):     becb4654  b00001ff  /system/bin/linker
01-09 07:36:34.454: DEBUG/Zygote(30): Process 230 terminated by signal (4)
01-09 07:36:34.454: INFO/ActivityManager(53): Process com.theveganrobot.cvcamera (pid 230) has died.
01-09 07:36:34.514: INFO/ARMAssembler(53): generated scanline__00000077:03010104_00000004_00000000 [ 22 ipp] (41 ins) at [0x48c470:0x48c514] in 13459425 ns
01-09 07:36:34.644: DEBUG/dalvikvm(53): GC freed 4974 objects / 263544 bytes in 145ms
01-09 07:36:34.654: INFO/WindowManager(53): Setting rotation to 0, animFlags=0
01-09 07:36:34.704: INFO/ActivityManager(53): Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=3/1 orien=1 layout=18}
01-09 07:36:34.814: INFO/UsageStats(53): Unexpected resume of com.android.launcher while already resumed in com.theveganrobot.cvcamera
01-09 07:36:34.894: WARN/InputManagerService(53): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@43cb43c8
01-09 07:36:37.094: DEBUG/dalvikvm(53): GC freed 1944 objects / 103176 bytes in 78ms

Ответы [ 2 ]

1 голос
/ 10 января 2011

У меня та же проблема ... похоже, ошибка. Вот ссылка на билет

https://code.ros.org/trac/opencv/ticket/789

Ошибка возникает у меня только при использовании Эмулятора. Если вы попытаетесь загрузить и запустить устройство напрямую, оно может работать

0 голосов
/ 03 марта 2011

SIGILL означает, что ваша программа пытается выполнить недопустимые инструкции. В этом случае проблема заключается в том, что эмулятор (как и старые устройства) может выполнять только инструкции от ARMv5 ISA, в то время как для повышения производительности мы обычно хотим, чтобы такие вещи, как OpenCV, были скомпилированы с ARMv7 ISA, который поставляется с FPU. Подробнее об этой проблеме в этой теме:

http://groups.google.com/group/android-ndk/browse_thread/thread/a19fc6df3d661d79

Чтобы решить эту проблему, вам нужно перекомпилировать OpenCV без использования каких-либо вещей "v7" из NDK.

...