1、mmi_java_recv_mids_install_cnf中会将VM准备好的应用基本信息赋给变量record,最终写入z:\@Java\JavaAppFactory\java.storage_name。
2、但是上述函数在组合record.storage_name时,把mids_version(1.0.0)和mids_storage_id(0)重叠赋给了record.storage_name。
使得record.storage_name变成了(0.0.0)。
memcpy(record.storage_name,msg->mids_version, (strlen(msg->mids_version) > MIDLET_VERSION_LEN ? MIDLET_VERSION_LEN-1:strlen(msg->mids_version)));
memcpy(record.storage_name,msg->mids_storage_id, strlen(msg->mids_storage_id));
3、在srv_java_appfactory_add_record生成的文件名变成了z:\@Java\JavaAppFactory\java.0.0.0,而不是预期中的z:\@Java\JavaAppFactory\java.0。
4、因此当main menu尝试用srv_java_appfactory_get_image获取icon时,根本找不到z:\@Java\0.0.0.icon(正确文件是z:\@Java\0.icon),于是显示一朵小花。
[对比]
之所以Rolltech没有这个问题,是因为NEMO VM的storage name是类似J0000001(8个字符)的格式,第二次memcpy用正确的mids_storage_id字段覆盖了mids_version字段。
mmi_java_recv_mids_install_cnf中删掉memcpy mids_version。
memcpy(record.storage_name,msg->mids_version, (strlen(msg->mids_version) > MIDLET_VERSION_LEN ? MIDLET_VERSION_LEN-1:strlen(msg->mids_version)));
memcpy(record.storage_name,msg->mids_storage_id, strlen(msg->mids_storage_id));
2、但是上述函数在组合record.storage_name时,把mids_version(1.0.0)和mids_storage_id(0)重叠赋给了record.storage_name。
使得record.storage_name变成了(0.0.0)。
memcpy(record.storage_name,msg->mids_version, (strlen(msg->mids_version) > MIDLET_VERSION_LEN ? MIDLET_VERSION_LEN-1:strlen(msg->mids_version)));
memcpy(record.storage_name,msg->mids_storage_id, strlen(msg->mids_storage_id));
3、在srv_java_appfactory_add_record生成的文件名变成了z:\@Java\JavaAppFactory\java.0.0.0,而不是预期中的z:\@Java\JavaAppFactory\java.0。
4、因此当main menu尝试用srv_java_appfactory_get_image获取icon时,根本找不到z:\@Java\0.0.0.icon(正确文件是z:\@Java\0.icon),于是显示一朵小花。
[对比]
之所以Rolltech没有这个问题,是因为NEMO VM的storage name是类似J0000001(8个字符)的格式,第二次memcpy用正确的mids_storage_id字段覆盖了mids_version字段。
mmi_java_recv_mids_install_cnf中删掉memcpy mids_version。
memcpy(record.storage_name,msg->mids_version, (strlen(msg->mids_version) > MIDLET_VERSION_LEN ? MIDLET_VERSION_LEN-1:strlen(msg->mids_version)));
memcpy(record.storage_name,msg->mids_storage_id, strlen(msg->mids_storage_id));