在为手机编写j2me应用程序时,如果使用模拟器,则在控制台上使用System.out.println()
打印。但是,当代码部署在手机上时,控制台输出在哪里?
如果在不受限制的手机中无法看到这个,如果手机仍然通过USB连接到部署PC,有没有办法看到它?
答案 0 :(得分:3)
在Symbian手机(诺基亚,索尼爱立信,摩托罗拉,三星,松下,西门子,检查Series60,Series80,Series90或UIQ平台)上,您可以检索System.out和System.err。最重要的是,您也可以检索Throwable.printStackTrace()。
早期版本的Symbian OS附带了一个名为Redirector的本机工具。它最终也可供第三方MIDlet开发人员使用。这些天可能很难找到,但可以使用插入Java虚拟机使用的C标准库的Symbian实现的C ++代码重新开发。
较新版本的Symbian OS附带一个额外的GCF协议,只需使用
即可检索System.out,System.err和Throwable.printStackTrace()。 javax.microedition.io.Connector.openDataInputStream("redirect://");
在从Sun Ltd cldc-hi虚拟机过渡到IBM J9虚拟机的过程中,您可能需要在某些版本的Series60上使用“redirect:// test”。
在启动要记录其输出的MIDlet之前,需要打开连接,因此您需要在单独的MIDlet中打开它。
答案 1 :(得分:2)
我找到了this question关于j2me日志记录的答案。如果没有别的办法,也许可以试试这个。访问System.out.println()
的简单方法会很好。
答案 2 :(得分:2)
感谢您的回复QuickRecipesOnSymbian。
在下面的文章中,您可以找到相应的J2ME MIDlet来显示Symbian手机上的标准错误/输出:
该解决方案也适用于三星i8910。 (由于我是这个网站上的新手,我无法发布多个链接,所以你需要在文章的最后找到带有来源和jar的拉链。)
答案 3 :(得分:1)
简单的答案是:无处可见。它确实在某处打印(因为如果你有大量的打印件,手机的负载会减慢)但是,在大多数手机上,都无法访问它。
某些设备会显示控制台输出,例如Sony Ericssons,如果系留并运行设备上的调试程序,则会显示所有设备。您可以通过搜索各个制造商的开发者网站(如果存在)来找出哪些内容以及哪些内容不起作用。
最好的办法是编写一个附加到程序中StringBuffer的小方法。然后映射按键,该按键将在屏幕上显示StringBuffer的内容。它对于搜索那些讨厌的设备问题是非常宝贵的。
答案 4 :(得分:0)
我能提供的唯一输入是每个平台的差异很大。我主要使用黑莓和System.err进入设备事件日志,但我不知道System.out在哪里。
答案 5 :(得分:0)
您还应确保不在生产代码中包含println。
我看到一些手机在执行此操作时实际上有内存泄漏(例如Sprint上的Sanyo 8400。
答案 6 :(得分:0)
登录设备始终是J2ME的一个问题,因为它没有标准的实现。 我可以致电GEAR。它是一个J2ME图形框架,它还实现了一个“设备内”调试控制台,您可以在其中打印线条并在屏幕上显示它们。
答案 7 :(得分:0)
System.out
OutputStream将进入调试器控制台。