调试设备上的j2me

时间:2008-12-01 17:37:46

标签: eclipse debugging java-me

是否有人将调试器连接到系留设备?我能够在模拟器中调试我的j2me应用程序,但在出现时解决手机特定的问题时会遇到很多麻烦。我使用的手机是诺基亚N95,但理想情况下调试过程适用于任何手机。

这可能吗?如果有的话,是否有人已经习惯了设置它们?

9 个答案:

答案 0 :(得分:2)

摩托罗拉手机支持名为KDWP的调试界面(需要Motodev注册)。他们的MIDway工具也可用于从设备上运行的midlet获取调试跟踪信息。

答案 1 :(得分:2)

索尼爱立信支持至少从K700开始在ebery手机上进行调试,这是通过使用KDWP完成的。 UIQ 3通信器也可以用同样的方式调试。

顺便说一下,SE的最新手机甚至可以监控内存消耗和CPU分析。所以,如果你想在真正的手机上调试你的应用程序,我建议也使用SE手机,他们真的很擅长。我使用Netbeans,任何SE手机都没有任何问题。

答案 2 :(得分:2)

正如其他人所说,设备调试严格依赖于制造商的意愿,而且通常几乎是不可能的。但是,我可以向您发送Gear Java Mobile Framework,让您有机会使用设备上的调试控制台打印您的消息,从而解决手机特定问题。如果您需要有关如何使用它的一些说明,请查看this tutorial

答案 3 :(得分:1)

不幸的是,这通常不可行。一些制造商(如Sony-Erricson)在他们的一些手机上支持这一点,但不是全部。我不确定是否有N95的设备调试工具,但你可以使用诺基亚的模拟器,它应该非常接近设备。新的Java ME SDK在不久的将来会带来真正的ODD。但它仍然在很大程度上取决于OEM合作。

答案 4 :(得分:1)

我发现一个好的调试方法是控制一个字符串值,当它不为空时,它会在其他所有内容上绘制。这可以在任何地方使用,虽然显然不是很理想,但可以用来捕捉异常,打印值等。当然你只限于小屏幕,但理论上你甚至可以编写一些滚动功能。

有些人使用RMS记录,但我个人永远不会被打扰。

正如其他人所说,摩托罗拉拥有Midway,我觉得这很棒。

答案 5 :(得分:0)

其他人在这里是正确的,因为设备上的调试是特定于设备的。我没有对Series 60做过任何事情,但至少在Series 40手机上,我不得不打开一个CommConnection并写出来,以便看到很多事情发生。设备模拟器也是一个混合包,但是你通常可以在你的应用程序上完成90%的工作,并且通常可以让你的调试器连接到它们。如果你没有使用手机上的任何硬件,这应该可以帮助你完成任务。

答案 6 :(得分:0)

我偶尔使用Blackberry工具调试J2ME应用程序(不使用RIM API),但速度非常慢,仍然只是仿真,而不是实际的设备(但它有时会帮助摆脱奇怪的事情) 。我同意当你在模拟器上运行某些东西时发现它不能在硬件上运行时,这是令人沮丧的。

答案 7 :(得分:0)

您无法像Android或其他SDK一样一步一步地进行调试。

在J2ME中,您可以通过在代码中添加日志语句来跟踪错误,并添加另一个midlet并在该midlet中显示该日志屏幕。

示例:添加Log.p("Log statement.....");

LogMidlet.java 
// Add the following line in the startup method of this midlet.
    Log.getInstance().showLog();

这样你可以以某种方式跟踪j2me中的错误。

答案 8 :(得分:-2)

我认为可以在预处理步骤中添加其他调试信息。像这样:

public void myMethod() {
    Debug.traceMethod("myMethod");
    int var = 1;
    Debug.newLine();
    var++;
    Debug.newLine();
    ...
}