有人曾经成功地将调试器连接到绑定设备吗?我能够在模拟器中调试我的j2me应用程序,但是当出现手机特定问题时,很难解决。我使用的手机是诺基亚N95,但理想情况下,调试过程适用于任何手机。
这可能吗?如果是,是否有人有设置步骤?
自K700起,Sony Ericsson支持在每个手机上进行调试,这是通过使用KDWP完成的。UIQ 3通讯器也可以用同样的方式进行调试。
顺便说一下,在SE的最新手机上,甚至可以监视内存消耗和CPU分析。因此,如果您想在真实的手机上调试应用程序,我建议您也使用SE手机,它们非常擅长此项工作。我使用Netbeans,并且它与任何SE手机都可以无问题地配合使用。
就像其他人所说的一样,设备上的调试严格取决于制造商的意愿,通常几乎不可能。然而,我可以向您介绍 Gear Java Mobile Framework,它提供了使用设备上的调试控制台打印消息并因此读取手机特定问题的机会。如果您需要有关如何使用它的说明,请参考本教程。
很遗憾,这通常是不可能的。一些制造商(如Sony-Erricson)在某些手机上支持此功能,但并非所有手机都支持。我不确定N95是否有设备上调试工具,但您可以使用诺基亚的模拟器,它应该非常接近实际设备。新的Java ME SDK承诺在不久的将来提供真正的ODD。但这仍然在很大程度上取决于OEM的合作。
其他人在这里的观点是正确的,即设备上的调试非常依赖于设备本身。我没有使用过Series 60,但至少在Series 40手机上,我必须打开CommConnection并写入其中才能看到任何事情发生。设备模拟器再次是一个混合包,但通常您可以完成应用程序的90%并且通常可以将调试器连接到它们。如果您没有利用手机上的任何硬件,则应该可以完成大部分工作。
你不能像Android或其他SDK一样逐步调试。
在J2ME中,您可以通过在代码中添加日志语句并添加另一个midlet来跟踪错误,并在该midlet中显示该日志屏幕。
例如:添加Log.p("日志语句.....");
LogMidlet.java
// Add the following line in the startup method of this midlet.
Log.getInstance().showLog();
这样你就可以在j2me中追踪错误了。
我认为在预处理步骤中添加额外的调试信息是可能的。像这样:
public void myMethod() { Debug.traceMethod("myMethod"); int var = 1; Debug.newLine(); var++; Debug.newLine(); ... }