Java应用OTA安装(网络下载安装)过程中卡在93%
0赞[DESCRIPTION]
Java应用的OTA安装过程中,安装流程卡在93%处很久,且此时无法cancel。
[SOLUTION]
该问题对于手机来说,实质上是一个正常现象,只是由于server端不可达导致。
每次 OTA 安装时候,都必须回报给 server状态,回报时间就是93%之后,具体调用的 API 就是
jam_request_http_post(…),这是一个 block API, VM 也会等待该 API 响应确认是否有回报成功
,如果不成功,该次安装仍然会安装成功,但是这次发送的 url 与信息都会留待下次安装时发送。
综上,当我们之前任何一次OTA过程回报server失败后,这些信息都不会删除,而是留待下次任何一个Java应用
OTA到93%时再尝试重新发送。当这些遗留的回报信息中,有某个server不可达时,我们就需要一直等待,直到网络连接超时。
可以通过icfans查看网络端的log确认当前是否是这种状况, Spec规定了如下几种常用的回报信息:
目前异常有一下几个回传信息,根据 J2ME 标准所规范的,包含安装成功与错误:
#define SUCCESS_MSG "900 Success"
#define INSUFFICIENT_MEM_MSG "901 Insufficient Memory"
#define USER_CANCELLED_MSG "902 User Cancelled"
#define JAR_SIZE_MISMATCH_MSG "904 JAR Size Mismatch"
#define ATTRIBUTE_MISMATCH_MSG "905 Attribute Mismatch"
#define INVALID_JAD_MSG "906 Invalid Descriptor"
#define INVALID_JAR_MSG "907 Invalid JAR"
#define INCOMPATIBLE_MSG "908 Incompatible Configuration
or Profile"
#define AUTHENTICATION_FAILURE_MSG "909 Application authentication
failure"
#define AUTHORIZATION_FAILURE_MSG "910 Application authorization
failure"
#define PUSH_REG_FAILURE_MSG "911 Push registration failure"
#define DELETE_NOTIFICATION_MSG "912 Deletion notification"
由于本身是server的问题,作为平台端遇到此类问题的解决方法也只format FAT。