在Codename one应用程序中为videoPlayer渲染位图时获得OOM



刚刚调用show()的形式,有视频或图像显示后,我看到这在我的codenameOne Android应用程序的日志:

07-01 12:43:08.790 3369-3406/?E/art:抛出OutOfMemoryError "分配4631116字节分配失败,480676个空闲字节和4MB直到OOM"07-01 12:43:08 800 3369-3406/?W/系统。错误:java.lang.OutOfMemoryError:分配4631116字节分配失败,480676个空闲字节和4MB直到OOM07-01 12:43:08 800 3369-3406/?W/系统。错误:在dalvik.system. vmrruntime。newNonMovableArray(本地方法)07-01 12:43:08 800 3369-3406/?W/系统。android.graphics.Bitmap。nativeCreate(本地方法)07-01 12:43:08 800 3369-3406/?W/系统。错误:at android.graphics.Bitmap.createBitmap(Bitmap.java:939)07-01 12:43:08 800 3369-3406/?W/系统。错误:at android.graphics.Bitmap.createBitmap(Bitmap.java:912)07-01 12:43:08 800 3369-3406/?W/系统。错误:at android.graphics.Bitmap.createBitmap(Bitmap.java:879)07-01 12:43:08 800 3369-3406/?W/系统。. androidnativeutil . renderviewonbitmap (AndroidNativeUtil.java:163)07-01 12:43:08 800 3369-3406/?W/系统。错误:at com.codename1.impl.android.f$b.m_(androidiimplementation .java:2652)07-01 12:43:08 800 3369-3406/?W/系统。错误:at com.codename1.p.y.B(PeerComponent.java:64)07-01 12:43:08 800 3369-3406/?W/系统。错误:at com.codename1.p.y.a(PeerComponent.java:211)07-01 12:43:08 800 3369-3406/?W/系统。err: at com.codename1.p.h.b(Component.java:1323)07-01 12:43:08 800 3369-3406/?W/系统。err: at com.codename1.p.h.d(Component.java:1297)07-01 12:43:08 800 3369-3406/?W/系统。err: at com.codename1.p.h.a(Component.java:1272)07-01 12:43:08 800 3369-3406/?W/系统。err: at com.codename1.p.i.a(Container.java:1323)07-01 12:43:08 800 3369-3406/?W/系统。err: at com.codename1.p.h.b(Component.java:1323)07-01 12:43:08 800 3369-3406/?W/系统。err: at com.codename1.p.h.d(Component.java:1297)07-01 12:43:08 800 3369-3406/?W/系统。err: at com.codename1.p.h.a(Component.java:1272)07-01 12:43:08 800 3369-3406/?W/系统。err: at com.codename1.p.i.a(Container.java:1323)

它似乎只发生在图像是一个大文件时,而且每次都是视频。

Video是对等组件,这意味着为了正确实现过渡,我们尝试将其转换为图像并再次转换。由于某些原因,这在这里失败了。

我们正在研究对等组件的另一种方法,这在本期中有部分解释。它应该大大改善像视频,html等东西,但可能有点挑战。

现在我建议禁用转换来尝试解决这个异常。

最新更新