Codenameone java.io.IOException:不支持对象类型

Codenameone java.io.IOException:不支持对象类型,codenameone,Codenameone,当我试图保存上传的用户的图像时,我得到以下错误 java.io.IOException: Object type not supported: com.codename1.ui.Image value: com.codename1.ui.Image@76a29a7 at com.codename1.io.Util.writeObject(Util.java:406) 下面是我的程序 用户类 状态机类 Image不是可外部化的类,因为它包含特定于平台的本机映像数据,而不是字节 EncodedIm

当我试图保存上传的用户的图像时,我得到以下错误

java.io.IOException: Object type not supported: com.codename1.ui.Image value: com.codename1.ui.Image@76a29a7
at com.codename1.io.Util.writeObject(Util.java:406)
下面是我的程序

用户类

状态机类

Image不是可外部化的类,因为它包含特定于平台的本机映像数据,而不是字节

EncodedImage是可外化的,所以您应该使用它。默认情况下,我们创建的所有图像(例如资源)都是EncodedImage,但如果您有图像或可变图像,则可以使用以下方法将其转换为EncodedImage:

public class User implements Externalizable {
        private String name;
        private Image proImg;

        public void externalize(DataOutputStream out) throws IOException {
            Util.writeUTF(getName(), out);
            Util.writeObject(getProImg(), out);

        }
        public void internalize(int version, DataInputStream in) throws IOException {
            setName(Util.readUTF(in));
            setProImg((Image) Util.readObject(in));
        }
       ...

}
 protected void onCreateAccountGui_SaveBtnAction(Component c, ActionEvent event) {
    User usr =  new User();     
    usr.setName(findNametxta(c).getText());
    usr.setProImg(findProImgGallery(c).getImage());

    try
    {
        storedUser.writeObject("userStore", usr);
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}
EncodedImage enc = EncodedImage.createFromImage(img, jpgOrPng);