Errno = 13 и как это эффективнее отлаживать?

Я делаю приложение, и когда я перехожу из меню в другое действие, отображающее изображение с использованием платформы e3roid, я всегда получаю это (logcat):

D/PhoneWindow( 1562): DebugMonitor class=com.recisio.kfandroid.gui.tab.KFFeaturedTab focus=false
E/copybit    ( 1562): Error opening frame buffer errno=13 (Permission denied)
D/PhoneWindow( 1562): DebugMonitor class=com.recisio.kfandroid.gui.player.KFPlayer focus=true

Я задаюсь вопросом, где возникает ошибка? Есть ли способ точно узнать, где это происходит? Могу ли я игнорировать это?

Судя по всему, копибит — это просто абстракция базового 2D-блиттера с поддержкой поворота, масштабирования и преобразования цвета/формата пикселя.

Но что странно, так это то, что все загруженные изображения хорошо отображаются на моем экране.

Хорошо: я попытался изменить способ кодирования bmp, который я печатаю следующим образом:

return Bitmap.createBitmap(bitmap_width, bitmap_height, Bitmap.Config.RGB_565);

но это не решает проблему.

Распечатав несколько отображаемых сведений повсюду в моем коде, я понял, что ошибка возникает при загрузке движка e3roid.

Я собираюсь посмотреть на источники, ожидая больше ответов.

После некоторых тестов с печатью bmp, который я создал раньше (действительно), я получаю это

E/copybit ( 3274): Error opening frame buffer errno=13 (Permission denied)
D/dalvikvm( 3274): GC freed 3337 objects / 132024 bytes in 150ms
I/DEBUG   ( 1145): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   ( 1145): Build fingerprint: 'vodafone_fr/htc_buzz/buzz/buzz:2.1-update1/ERE27/183733:user/release-keys'
I/DEBUG   ( 1145): pid: 3274, tid: 3519  >>> com.recisio.kfandroid <<<
I/DEBUG   ( 1145): signal 11 (SIGSEGV), fault addr 00000000
I/DEBUG   ( 1145):  r0 46c62008  r1 00000000  r2 00100000  r3 00000018
I/DEBUG   ( 1145):  r4 4685fd10  r5 00000002  r6 46c62008  r7 0000000c
I/DEBUG   ( 1145):  r8 00000000  r9 4191fd20  10 00000de1  fp 002e4428
I/DEBUG   ( 1145):  ip 80000000  sp 4685fc98  lr acc9697b  pc afe0e060  cpsr a0000010
I/DEBUG   ( 1145):          #00  pc 0000e060  /system/lib/libc.so
I/DEBUG   ( 1145):          #01  pc 00016978  /system/lib/egl/libGLES_android.so
I/DEBUG   ( 1145):          #02  pc 00016d5a  /system/lib/egl/libGLES_android.so
I/DEBUG   ( 1145):          #03  pc 0002886c  /system/lib/libandroid_runtime.so
I/DEBUG   ( 1145):          #04  pc 0000f3f4  /system/lib/libdvm.so
I/DEBUG   ( 1145): 
I/DEBUG   ( 1145): code around pc:
I/DEBUG   ( 1145): afe0e050 0a00000a e1530002 8202301c e1b0ce03 
I/DEBUG   ( 1145): afe0e060 28b100f0 48b10300 28a000f0 48a00300 
I/DEBUG   ( 1145): afe0e070 e3130004 1491a004 1480a004 e0422003 
I/DEBUG   ( 1145): 
I/DEBUG   ( 1145): code around lr:
I/DEBUG   ( 1145): acc96968 5c39008f 434b6936 435a1c30 f7ed6921 
I/DEBUG   ( 1145): acc96978 e020e91a fef4f7ff 28001c05 480fd101 
I/DEBUG   ( 1145): acc96988 69c2e01a 47901c31 1c2169ab 47981c28 
I/DEBUG   ( 1145): 
I/DEBUG   ( 1145): stack:
I/DEBUG   ( 1145):     4685fc58  001615b8  [heap]
I/DEBUG   ( 1145):     4685fc5c  00000800  
I/DEBUG   ( 1145):     4685fc60  00000000  
I/DEBUG   ( 1145):     4685fc64  acc97fdb  /system/lib/egl/libGLES_android.so
I/DEBUG   ( 1145):     4685fc68  00301418  [heap]
I/DEBUG   ( 1145):     4685fc6c  acc9604d  /system/lib/egl/libGLES_android.so
I/DEBUG   ( 1145):     4685fc70  00010002  [heap]
I/DEBUG   ( 1145):     4685fc74  00100000  [heap]
I/DEBUG   ( 1145):     4685fc78  00000200  
I/DEBUG   ( 1145):     4685fc7c  00000200  
I/DEBUG   ( 1145):     4685fc80  001615b8  [heap]
I/DEBUG   ( 1145):     4685fc84  acc95f3d  /system/lib/egl/libGLES_android.so
I/DEBUG   ( 1145):     4685fc88  afe38e08  /system/lib/libc.so
I/DEBUG   ( 1145):     4685fc8c  afe0eed4  /system/lib/libc.so
I/DEBUG   ( 1145):     4685fc90  df002777  
I/DEBUG   ( 1145):     4685fc94  e3a070ad  
I/DEBUG   ( 1145): #00 4685fc98  00000002  
I/DEBUG   ( 1145):     4685fc9c  46c62008  
I/DEBUG   ( 1145):     4685fca0  0000000c  
I/DEBUG   ( 1145):     4685fca4  00000000  
I/DEBUG   ( 1145):     4685fca8  4191fd20  
I/DEBUG   ( 1145):     4685fcac  00000de1  
I/DEBUG   ( 1145):     4685fcb0  002e4428  [heap]
I/DEBUG   ( 1145):     4685fcb4  46c62008  
I/DEBUG   ( 1145):     4685fcb8  4685fd10  
I/DEBUG   ( 1145):     4685fcbc  acc9697b  /system/lib/egl/libGLES_android.so
I/DEBUG   ( 1145): #01 4685fcc0  4106788c  /dev/ashmem/dalvik-LinearAlloc (deleted)
I/DEBUG   ( 1145):     4685fcc4  002e4428  [heap]
I/DEBUG   ( 1145):     4685fcc8  ad053c19  /system/lib/libdvm.so
I/DEBUG   ( 1145):     4685fccc  00000000  
I/DEBUG   ( 1145):     4685fcd0  ad080f8c  /system/lib/libdvm.so
I/DEBUG   ( 1145):     4685fcd4  00300ea0  [heap]
I/DEBUG   ( 1145):     4685fcd8  00000200  
I/DEBUG   ( 1145):     4685fcdc  001615cc  [heap]
I/DEBUG   ( 1145):     4685fce0  00000001  
I/DEBUG   ( 1145):     4685fce4  acc96d5f  /system/lib/egl/libGLES_android.so
I/DEBUG   ( 1145): debuggerd committing suicide to free the zombie!
I/DEBUG   ( 3535): debuggerd: May 28 2010 02:08:39

Что это?


person GrandMarquis    schedule 18.08.2011    source источник


Ответы (3)


Хм... Я думаю, ваше устройство поддерживает ARGB_8888, потому что все изображения хорошо загружаются на ваш экран. OpenGL иногда показывает странные ошибки, когда устройство сталкивается с нехваткой памяти.

person Community    schedule 24.08.2011
comment
Я думаю, что это было так, но я позволил e3roid использовать холст вместо этого;) Ty - person GrandMarquis; 24.08.2011

У меня была такая же ошибка несколько раз назад, это было из-за нехватки памяти. В эмуляторе logcat, а не на моем телефоне (wildfire), он говорил: OutOfMemoryException.

Убедитесь, что вы используете recycle() nethod для очистки растрового изображения из памяти.

person user1117761    schedule 27.12.2011

Это может произойти, если вы используете неподдерживаемый формат текстуры. Попробуйте использовать RGB565. Здесь вы можете найти некоторую информацию о проблеме: http://code.google.com/p/processing/issues/detail?id=391

person Moss    schedule 18.08.2011