各位SP难兄难弟们……可能你们最近收到年初提交的百宝箱测试反馈,可能都有下面两个问题吧。经过一下午的折腾,大概搞清楚原因了,写出来大家交流一下,以便共同通过测试,不要为一些打包的问题而被打回来。(除了这两个以外还有什么问题当然也欢迎交流)
author:clapton_xpAThotmailDOTcom
(1)JAD中缺少应有的项:MIDlet-Vendor、MIDlet-Version
(2)不能提交应用,上传时平台提示:“应用和已知的JAVA 特征不匹配,不能被上传”
(1) 是由于JAD编码不是ASCII
《百宝箱业务测试及开发FAQ》中提到:
7. JAD乱码是怎么产生的?
答:由于UTF-8编码的JAD文件在上传至平台时会表现为乱码,因此在上传前需用ultraedit(ultraedit的“高级”/“配置”中将“自动检测UTF-8文件”勾选掉)手工进行“文件->转换->UTF-8转ASCII”的转换步骤,转换后含有乱码字符的JAD文件可能导致无法上传或用手机下载时会看到乱码,因此无法完成后续测试。
(上面这句话我死活看不懂要表达的是什么-_-b)
部分SP提交的JAD中总出现某项前面有乱码的情况, 是因为在UltraEdit里设置了UTF-8文件头标记的后果,即在“高级”/“配置”中勾选了“保存是对所有UTF-8写入UTF-8文件头标记(ROM)-(OFF)”,应该勾选掉。
(2)是由于编译出的class不被百宝箱平台识别,解决的办法是使编译出的class兼容性为1.1,做法可以参考网上的这段文字:
百宝箱应用编译打包事宜
1 编译时,设置javac 的target vm为1.1即可通过移动检测。wtk中无法实现。在Eclipse中可以在java-compiler-Compliance and Classfiles中做以下设置:
Compiler compliance level: 1.4
Generated .class files compatibility: 1.1
Source compatibility: 1.3
2 用eclispe打混淆包。但eclipse编写jad中文会出现乱码,所以用wtk编写正确的jad,然后用wtk打包(注意不能覆盖eclispe打的包),这是为了用wtk获得正确的jad和manifest文件。将elcipse打包出的jar解压,用wtk生成的mainifest代替原jar中的mainifest文件,然后用winrar打包(zip格式,可选最大压缩,注意要选择所有的文件后打包,不要将外面的整个目录打包).最后将jad中的jar size改为这个最新的jar的字节数。
另:1. Nokia S60,SE k700机器中显示的游戏名字为MIDlet-1中的名字,而Nokia40为MIDlet-Name中的名字
2. 根据sp提供的资料Nokia 7650 游戏不能用中文名(其实NGageQD可以)
解决这两个问题后就可以上传到百宝箱平台上了(而已,是不是能通过真正测试我也不知道),至于之后的测试还会有什么问题是不是又需要半年时间才能发现……
author:clapton_xpAThotmailDOTcom
附录:
1.测试用的平台为 http://sp.mbox.monternet.com
如果没有账号的可以发邮件至java.test@chinamobile.com申请
选择“提交应用”可以测试jad/jar是否与平台匹配,但不要选择确定提交
2.谁知道如何获得最新的规范请告诉一声~去年醒时的规范看来不能用了,卓望的规范除了那个faq以外不知道有没有其它的?