站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题关于移动百宝箱应用打包问题的解决办法

关于移动百宝箱应用打包问题的解决办法

摘要: 关于移动百宝箱应用打包问题的解决办法
<tr><td>
http:///tech/article2912.html
[转载于CSDN]
[]
各位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可以)



特别说明:


1.你按照上面的方法打包出来的jar理论上是可以通过移动的上传平台的检测的;不过你可能不太放心。怎么办?上传测试一下不就玩了(每个sp都会有一个移动给的上传帐户的)。Eclipse打包出来的jar(经过上面的winrar压缩步骤后的)和wtk生成的jad在上传平台时,由于此时的jad是utf-8格式的,所以会造成:

(1)JAD中缺少应有的项:MIDlet-Vendor、MIDlet-Version

所以你必须把这个jad转成ascii码的,如何转参见上面的“7. JAD乱码是怎么产生的?”,这里面的转换方法。

[]这样就jar和jad就可以正确上传了。此时jad里面的描述那一项会在移动平台上正确显示。但是这只是测试它们可不可以上传,此时的jad并不是提交给移动的文件。提交给移动的是没有转成ascii码之前的jad。也就是utf-8的jad。Ascii码编码的jad文件安装到手机上是无法通过jad来安装程序的。(转换工作移动他们做的。我们在这里只是提前测试一下能不能上传而已。)


2.另外对于平台的适配:如果你的游戏是为Nokia 6600开发的,那么一定要看看,在上传到平台后,平台适配那个列表里6600有没有被勾选上,否则,移动的反馈就是“经检测、上传应用与提交平台不匹配”。当然如果你的游戏是好几个程序通用的。那么这几个机型都要被勾上哦!
http:///tech/article2912.html
</td></tr></table></td> </tr> <tr> <td background="/pic/split.gif" height=1></td> </tr> <tr> <td class="tdMargin1">
↑返回目录
前一篇: 保护MIDP应用里的数据文件--远离版权侵犯
后一篇: 使用Push短信息自动启动JAVA移动程序