我正在制作一个应用程序,当我从菜单转到使用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
这是什么?
答案 0 :(得分:2)
嗯..我想你的设备支持ARGB_8888因为所有的图像 装在屏幕上。 OpenGL有时会显示奇怪的错误 设备遇到内存不足的情况。
答案 1 :(得分:2)
我前几次遇到同样的错误,原因是内存不足。在模拟器logcat而不是我的手机(野火)上,它说:OutOfMemoryException
。
确保使用recycle()
nethod清除内存中的位图。
答案 2 :(得分:1)
如果您使用的是不受支持的纹理格式,则会发生这种情况。尝试使用RGB565。您可以在此处找到有关该问题的一些信息:http://code.google.com/p/processing/issues/detail?id=391