我正在使用Netbeans IDE在Java ME中开发一个应用程序,我正在创建3个表单,其中包含Button
,Command
(正常和返回)和Image
在第一个{ {1}}。
使用确定Form
我可以将控件转移到第二个表单。这工作
在第二个Command
我有2个Form
确定并返回。点击OK,它应该转到第3 Command
。点击后退它应该返回到第一个Form
。
当我在第二个Form
时,我既不能转移到第三个也不能转移到第一个Form
。
我收到以下异常.............
Form
(堆栈跟踪不完整) 转换绘制期间发生异常,这可能在转换过程中调整大小时有效
请帮帮我。 提前致谢
答案 0 :(得分:1)
Sanjay的答案是正确的但是如果它没有解决问题,我猜你会在你的代码中的某处导致堆栈溢出。许多J2ME VM无法触发堆栈溢出异常,而是引发内存不足错误。
只需使用调试器并遍历代码即可查看递归。
答案 1 :(得分:0)
使用您提供的信息,可能的问题是第一种形式的图像,您需要跟踪您正在使用的图像的大小。加载图像时,数据被解压缩为像素阵列。像素可能需要2到4个字节,具体取决于设备。一个800x600图像有480,000像素,因此需要至少1Mb的堆(可能高达2Mb)来加载它。这将解释为什么你的内存不足。在转换过程中,它可能是LWUIT使图像的本地副本“转换”(重绘)它(虽然我不确定)所以如果在转换时需要更多内存,这并不奇怪。
以下是一本可以帮助您的好读物:Memory Leaks In LWUIT And Tracking Memory In Java ME
答案 2 :(得分:0)
您可以扩展模拟器的内存。您必须单击项目的属性/平台/管理模拟器/工具&扩展/打开首选项/存储 在这个窗口中你会看到堆大小,写在这里1000 f.e.并再试一次。
答案 3 :(得分:-1)
当您切换到该等级的第2或第3对象时显示对象(来自mdilet)与下一个表单构造函数,当你回调按钮时,只需编写一行代码,如display.setCurrent(previous_form_object);
&当你点击ok命令时,你知道如何进入下一个表单。还有一件事是Sanjay提到的。
由于