針對 SP(服務提供商)在提交應用至中國移動「百寶箱」平台時常遇到的兩大打包問題,本文整理了經實測驗證的解決辦法,助你順利通過測試上架。
現象:平台回報「JAD 中缺少應有的項:MIDlet-Vendor、MIDlet-Version」。
根因:JAD 檔案編碼非 ASCII。平台文檔要求 JAD 必須為 ASCII 編碼;若為 UTF-8 且包含 BOM(Byte Order Mark)或非 ASCII 字元,解析器會誤判屬性缺失。
補充說明:ASCII 版 JAD 僅供平台上傳測試用;最終提交給移動的正式包仍需 UTF-8 版 JAD(平台會自行轉碼)。
現象:上傳時提示「應用和已知的 Java 特征不匹配,不能被上傳」。
根因:編譯產生的
.class檔版本過高(預設為 Java 1.4/1.5),百寶箱平台僅支援 JDK 1.1 兼容 的 class 檔格式(major version 45.0)。
在 Eclipse 專案屬性 Java Compiler → Configure Project Specific Settings 中設定:
此設定僅影響 bytecode 版本,不影響語法特性(仍可用 1.3/1.4 語法)。
.class 並打包為 app.jar。MANIFEST.MF 與 JAD。app.jar,將 WTK 產生的 MANIFEST.MF 覆蓋原 META-INF/MANIFEST.MF。app.jar。MIDlet-Jar-Size 為新 JAR 的位元組大小。MIDlet-1 名稱;Nokia S40 顯示 MIDlet-Name。每個 SP 皆有移動分配的上傳測試帳號。打包完成後,先用 ASCII-JAD 上傳測試;若通過,再用 UTF-8-JAD 正式提交。切勿等正式審核才發現問題。