天天看点

MOTO 手机使用J2ME程序的Bug

这几天写了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 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

/** *//**

MOTO 手机使用J2ME程序的Bug

     * moto 不可以使用

MOTO 手机使用J2ME程序的Bug

     * 

MOTO 手机使用J2ME程序的Bug

     * @param str

MOTO 手机使用J2ME程序的Bug

     * @return

MOTO 手机使用J2ME程序的Bug

     * @author ken_xu

MOTO 手机使用J2ME程序的Bug

     */

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

    public static string[] split(string str) ...{

MOTO 手机使用J2ME程序的Bug

        return split(str, ' ', -1);

MOTO 手机使用J2ME程序的Bug

    }

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

    /** *//**

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

    public static string[] split(string text, char separator) ...{

MOTO 手机使用J2ME程序的Bug

        return split(text, separator, -1);

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

     * moto手机不可以使用

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

     * @param separator

MOTO 手机使用J2ME程序的Bug

     * @param max

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

    public static string[] split(string str, char separator, int max) ...{

MOTO 手机使用J2ME程序的Bug

        stringtokenizer tok = null;

MOTO 手机使用J2ME程序的Bug

        vector v = null;

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

        if (separator == ' ') ...{

MOTO 手机使用J2ME程序的Bug

            tok = new stringtokenizer(str);

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

        } else ...{

MOTO 手机使用J2ME程序的Bug

            tok = new stringtokenizer(str, separator);

MOTO 手机使用J2ME程序的Bug

        }

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

        for (v = new vector(); tok.hasmorechars();) ...{

MOTO 手机使用J2ME程序的Bug

            string s = "" + tok.nexttoken();

MOTO 手机使用J2ME程序的Bug

            s = s.trim();

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

            if (s.equals("") == false) ...{

MOTO 手机使用J2ME程序的Bug

                v.addelement(s.trim());

MOTO 手机使用J2ME程序的Bug

            }

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

        int listsize = v.size();

MOTO 手机使用J2ME程序的Bug

        if (max > 0 && listsize > max)

MOTO 手机使用J2ME程序的Bug

            listsize = max;

MOTO 手机使用J2ME程序的Bug

        string list[] = new string[listsize];

MOTO 手机使用J2ME程序的Bug

        int i = 0;

MOTO 手机使用J2ME程序的Bug

        int lasttokenbegin = 0;

MOTO 手机使用J2ME程序的Bug

        int lasttokenend = 0;

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

        for (enumeration e = v.elements(); e.hasmoreelements();) ...{

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

            if (max > 0 && i == listsize - 1) ...{

MOTO 手机使用J2ME程序的Bug

                string endtoken = (string) e.nextelement();

MOTO 手机使用J2ME程序的Bug

                lasttokenbegin = str.indexof(endtoken, lasttokenend);

MOTO 手机使用J2ME程序的Bug

                list[i] = str.substring(lasttokenbegin);

MOTO 手机使用J2ME程序的Bug

                break;

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

            list[i] = "" + e.nextelement();

MOTO 手机使用J2ME程序的Bug

            lasttokenbegin = str.indexof(list[i], lasttokenend);

MOTO 手机使用J2ME程序的Bug

            lasttokenend = lasttokenbegin + list[i].length();

MOTO 手机使用J2ME程序的Bug

            i++;

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

        return list;

MOTO 手机使用J2ME程序的Bug
MOTO 手机使用J2ME程序的Bug

....等等吧,我再找找,找到下一个再写上来好了,就待续吧~~~~~~~~~

哎~~~不知道是moto手机厂商想什么呢,这麽多的bug

期望:要是moto的e2手机(arm芯片组上跑的linux系统).能支持system.out就好了,最起码通过telnet能看到异常信息就好了