7

有没有人成功地将调试器连接到系留设备?我可以在模拟器中调试我的 j2me 应用程序,但是在解决电话特定问题时遇到了很多麻烦。我使用的手机是诺基亚 N95,但理想情况下,调试过程适用于任何手机。

这可能吗?如果是这样,是否有人有他们用来设置它的步骤?

4

9 回答 9

3

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

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

于 2008-12-13T11:32:18.330 回答
2

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

于 2008-12-02T02:21:55.507 回答
2

如前所述,设备调试完全取决于制造商的意愿,而且通常几乎是不可能的。不过,我可以向您介绍Gear Java Mobile Framework,它让您有机会使用设备上的调试控制台打印您的消息,从而阅读手机特定的问题。如果您需要有关如何使用它的一些说明,请查看本教程

于 2009-02-03T10:04:27.333 回答
1

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

于 2008-12-01T18:47:18.407 回答
1

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

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

正如其他人在这里所说,摩托罗拉有 Midway,我认为这很棒。

于 2009-07-31T20:41:43.230 回答
0

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

于 2009-05-18T15:39:47.573 回答
0

其他人在这里是正确的,因为设备上的调试非常特定于设备。我没有对 60 系列做任何事情,但至少在 40 系列手机上,我必须打开一个 CommConnection 并写出来才能看到发生的大部分事情。设备模拟器又是一个混合包,但您通常可以获得 90% 的应用程序在它们上工作的方式,并且通常可以让您的调试器连接到它们。如果您不使用手机上的任何硬件,那应该可以帮助您完成大部分工作。

于 2009-05-15T16:17:11.117 回答
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 中的错误。

于 2011-11-07T04:42:34.740 回答
-2

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

公共无效我的方法(){
    Debug.traceMethod("myMethod");
    整数变量 = 1;
    Debug.ne​​wLine();
    变量++;
    Debug.ne​​wLine();
    ...
}
于 2009-07-21T09:01:41.700 回答