J2ME应用的下载问题

6600

问题: 下载j2me应用的jar文件到Nokia 6600,出现错误 qtn_swins_note_no_ams_auth, 导致无法下载

分析和解决:
0. Google上查找错误字符串, 确实有人出现类似问题, 但是没有人给出明确的解决方法, 一个很好的例子在SUN的Java论坛上面出现, N6600出现了下载问题, 某人给出的参考方法是删除JSR82的调用.
1. 首先怀疑是程序大小的问题, 不过已经从476K->250K, 感觉不是
2. 怀疑可能是界面中使用了不支持的库, 使用以往成功的界面代码, 下载,仍然不成功
3. 根据经验, 认为可能是调用了MIDP/CLDC不支持的API, 不过由于不少代码是Open Source, 无法确定
4. 也怀疑是硬件的问题, 不过无法确定, 因为其他的J2ME代码可以运行
5. 怀疑是socket不支持datagram, 但是这不会导致下载问题, 写了小例子, 下载成功, 运行不对
6. 怀疑是程序没有签名, 用ND对JADS签名以后, OTA下载安装, 仍然失败

7. 在构造package的时候, 逐步删除不必要的类, 终于定位在两个类代码, 其中使用了不被支持的package, com.sun.cldc.io

两个人花费了将近7个小时, 讨论和尝试无数方法, 终于问题定位

教训:
1. Open Source的使用必需花费很多时间加以熟悉
2. 以前遇到这个问题, 不过没有仔细分析, 且缺乏记录, 导致反复
3. 由于开始使用蓝牙Token下载, 双机反复插拔, 而硬件并不对win2000很友好, 经常无法检测硬件, 花费很多时间, 后来使用红外, 终于稳定了
4. 如果有工具可以发现所有imports,倒是便于解决这种问题, 可能某些工具JbuilderX, WSDD,或者NDS已经有这个功能, 只是不知道

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注