Nokia真机测试程序自动退出现象搜集[1][javaME]

第一,
下面的代码在索爱机型上可以运行,在nokia s60模拟器上也可以运行,唯独不能在nokia 7610上运行,程序会自动退出:

new Thread(this, "Menu thread").start();


必须改写为

Thread thread;
(thread = new Thread(this)).start();

方能在真机上运行。

这种程序自动退出的问题,有时候是因为你根本猜想不到的代码导致的,这时候只能通过二分排除法(不断地注释代码来缩小代码范围)来判定了。

第二,再譬如说,
你的代码中有对double的使用,比如这种代码:

double alpha = (double)Math.abs(i - m_canvasWidth / 2) /
                           (double)m_canvasWidth;


但是,注意一点,CLDC1.1才开始支持Math,“Math functions in java.lang package is available only since CLDC-1.1”。所以,如果你一旦在CLDC1.0的nokia手机上使用,那么,即使你用了try/catch捕获异常,程序也会自动退出。

这时候你也不要惊诧。

第三,
Thread thread;
      (thread = new Thread(this)).start();代码可以运行。
但是Thread thread;
      (thread = new Thread(this, "Menu thread")).start();
就会导致Nokia真机立即退出。
同样,
Thread thread;
          (thread = new Thread(new Runnable()
          {
            public void run()
            {
              m_inputHandler.handleStringInput(input);
            }
          }, "inputHandler")).start();
也会导致立即退出。
以上虽然模拟器可以运行,但是真机是不允许的。
原文地址:https://www.cnblogs.com/zhengyun_ustc/p/nokiacase1.html