索尼爱立信JP-7 j2me调试

Posted

技术标签:

【中文标题】索尼爱立信JP-7 j2me调试【英文标题】:sony ericsson JP-7 j2me debugging 【发布时间】:2010-12-19 10:23:26 【问题描述】:

我正在尝试在我的 Sony Ericsson K790i 上调试 J2ME 应用程序,这是一款在 Windows XP 上使用最新 Netbeans、J2ME SDK、Sony SDK 等的 JP-7 手机。

我可以通过 USB 连接并使用 SE 设备资源管理器。当我从设备资源管理器启动我的应用程序时,它只给出一个异常名称 (ArrayOutOfBoundsException) 和一个带有“未知”列表的调用堆栈。有没有办法将调用堆栈转换为过程和行号?有没有办法创建调试二进制文件或任何方法来获得更多提示? 我的应用程序在模拟器上启动良好。它甚至可以在手机上正常安装,但是当我运行它时,它崩溃了,根本没有任何信息。

我什至尝试使用我的手机支持的设备调试,但我得到 OAFcode=45 EXEcode=28 并且调试会话永远不会开始。虽然它确实在我的手机中创建了一个 tempNNNN 应用程序。

欢迎任何可以提供帮助的想法。

【问题讨论】:

【参考方案1】:

当您在调用堆栈中遇到未知异常时,该异常来自 Java 运行时环境。由于 SE OSE 手机的闪存空间有限,大多数调试信息都被删除了。可以获取调用堆栈的地址(它通过网络传输,但由 DeviceExplorer 映射到“未知”),但它对您没有多大用处,因为您没有地址映射来转换地址。

IIRC 有一个文本文档描述了 sdk 中包含的不同错误代码。寻找 oafcodes.txt 或类似的东西。

另外,如果您使用的是 Netbeans:当您在 Netbeans 中创建新项目时,我相信它默认为 MIDP 2.1。 K790是老手机,只支持2.0。如果您尝试在其上安装 2.1 应用程序,那么 MIDP 2.1 SE 之前的手机将会失败。

【讨论】:

【参考方案2】:

如果您能够看到异常,那么您将在打印它时看到所有堆栈跟踪,并且您将确定问题的原因和位置。可能是,当您将应用程序部署/构建到手机时,您禁用了调试器使用的编译器属性(例如:添加行号属性等)?

我不知道“未知”异常列表是什么意思。

通常您可以在完整堆栈中看到引发的异常、类方法和导致问题的行。

顺便问一下,您是否尝试过使用 KDWP?这似乎是一个很好的解决方案。在this tread 中,人们谈论在设备上进行调试。

【讨论】:

J2ME 无法在设备上进行调试。您应该使用日志记录工具并检查您的应用程序没有使用设备不支持的任何可选库。

以上是关于索尼爱立信JP-7 j2me调试的主要内容,如果未能解决你的问题,请参考以下文章

在设备上调试 j2me

J2ME - 使用 Web 服务

Android经典蓝牙开发入门

索立信平板电脑密码忘记了怎样解锁?型号是S100 谢谢您!

SQL中如何显示COUNT结果为0的行

美国的霸道行径再次暴露无遗,在华为之后,爱立信也被美国罚款