Errno = 13以及如何更有效地调试它?

时间:2011-08-18 09:31:38

标签: android debugging errno

我正在制作一个应用程序,当我从菜单转到使用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

我在质疑错误来自哪里? 有没有办法确切知道它发生在哪里? 我可以忽略这个吗?

显然,copybit只是基本2D blitter的抽象,支持旋转,缩放和颜色/像素格式转换。

但奇怪的是,所有加载的图像都显示在我的屏幕上。

好的:我试图改变我编码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

这是什么?

3 个答案:

答案 0 :(得分:2)

嗯..我想你的设备支持ARGB_8888因为所有的图像 装在屏幕上。 OpenGL有时会显示奇怪的错误 设备遇到内存不足的情况。

答案 1 :(得分:2)

我前几次遇到同样的错误,原因是内存不足。在模拟器logcat而不是我的手机(野火)上,它说:OutOfMemoryException

确保使用recycle() nethod清除内存中的位图。

答案 2 :(得分:1)

如果您使用的是不受支持的纹理格式,则会发生这种情况。尝试使用RGB565。您可以在此处找到有关该问题的一些信息:http://code.google.com/p/processing/issues/detail?id=391