如何解决j2me应用程序中的内存不足异常

时间:2011-08-05 04:33:04

标签: java java-me bluetooth out-of-memory mobile-application

我正在开发j2me中的移动应用程序。

我的应用程序执行以下操作

  • 我将手机与某些带蓝牙的外部设备连接
  • 通过蓝牙
  • 将数据/命令发送到该设备
  • 从该设备接收回复

我的问题是设备返回的数据高达1000KB。所以我的应用程序抛出“Out of memory”异常。

请帮我解决问题。

5 个答案:

答案 0 :(得分:0)

背后的原因很简单,你的设备中没有1MB的片上内存。因此,请尝试将数据分成几块。

答案 1 :(得分:0)

你必须增加你的操作系统内存 通过这个。 http://blogs.oracle.com/fkieviet/entry/classloader_leaks_the_dreaded_java

答案 2 :(得分:0)

无论J2ME设备上的物理空间大小如何,其内存占用量通常在64到512kb之间。我认为J2ME的最大值实际为512kb。虽然我错了,但我会调查一下。这是一种常见的混合方式,我曾经在Jamdat Mobile的J2ME测试日期间一直面对这个问题。许多摩托罗拉V系列设备因抛出此错误而特别臭名昭着。

查看您使用的设备上的KVM实现,以确定真正的内存占用量。

您可能会发现这有用:http://java.sun.com/products/cldc/wp/KVMwp.pdf

答案 3 :(得分:0)

请注意,较旧的J2ME实现使用非碎片整理内存管理器。当我制作游戏时,我们必须明确订购我们的分配。

答案 4 :(得分:0)

如何将数据存储在临时文件中,这样您就不需要将所有数据保存在内存中? 你也可以增加内存分配,但是如果用户发送更大的文件,有一天你会再次遇到同样的问题。