这几天写了j2me程序,在sun公司提供的模拟器上运行一切正常,满心欢喜.
拷贝到手机上一试.晕啊.有个form竟然不报错,但是也打不开.
经过一天的一个一个添加的测试(狂心疼手机的usb插口,moto的设计师估计试左撇子)
一个一个的问题浮出水面
不能又超过3层的类的继承关系,否则很容易此类创建的时候异常,但是不报错,不过就是无法打开.
textfield不能使用 textfield.uneditable类型,否则只要焦点移动到该对象上,内存就会一路狂跑,最终溢出.这个错误,可以通过sun公司的sun java (tm) wireless toolkit 2.5.2 for cldc 打开内存监视器就可以看到了.
textfield的类型中textfield.uneditable|textfield.decimal不能复合使用,否则用一个死一个.不信自己去试啦~~~~
stringtokenizer好像有问题,哦,好像啊.我没确认,工作进度赶太紧,没时间确认了,谁有空确认一下吧.反正我调用下面的代码就会有不报错的异常,然后机器的程序就无法打开了.
/** *//**
* moto 不可以使用
*
* @param str
* @return
* @author ken_xu
*/
public static string[] split(string str) ...{
return split(str, ' ', -1);
}
/** *//**
public static string[] split(string text, char separator) ...{
return split(text, separator, -1);
* moto手机不可以使用
* @param separator
* @param max
public static string[] split(string str, char separator, int max) ...{
stringtokenizer tok = null;
vector v = null;
if (separator == ' ') ...{
tok = new stringtokenizer(str);
} else ...{
tok = new stringtokenizer(str, separator);
}
for (v = new vector(); tok.hasmorechars();) ...{
string s = "" + tok.nexttoken();
s = s.trim();
if (s.equals("") == false) ...{
v.addelement(s.trim());
}
int listsize = v.size();
if (max > 0 && listsize > max)
listsize = max;
string list[] = new string[listsize];
int i = 0;
int lasttokenbegin = 0;
int lasttokenend = 0;
for (enumeration e = v.elements(); e.hasmoreelements();) ...{
if (max > 0 && i == listsize - 1) ...{
string endtoken = (string) e.nextelement();
lasttokenbegin = str.indexof(endtoken, lasttokenend);
list[i] = str.substring(lasttokenbegin);
break;
list[i] = "" + e.nextelement();
lasttokenbegin = str.indexof(list[i], lasttokenend);
lasttokenend = lasttokenbegin + list[i].length();
i++;
return list;
....等等吧,我再找找,找到下一个再写上来好了,就待续吧~~~~~~~~~
哎~~~不知道是moto手机厂商想什么呢,这麽多的bug
期望:要是moto的e2手机(arm芯片组上跑的linux系统).能支持system.out就好了,最起码通过telnet能看到异常信息就好了