android - Parse store profileImage error -


i trying store profile image parse during usersignup. getting error when trying store image file along user. code,

@override     protected void oncreate(bundle savedinstancestate) {         log.d("check", "ckpoint signup 2");         parse.initialize(this, "noa", "noa");         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_register);          //initialize         musername = (edittext)findviewbyid(r.id.usernameregisteredittext);         museremail = (edittext)findviewbyid(r.id.emailregisteredittext);         muserpassword = (edittext)findviewbyid(r.id.passwordregisteredittext);         mregisterbutton =(button)findviewbyid(r.id.registerbutton);         mpicturebutton = (imagebutton)findviewbyid(r.id.pictureimagebutton);           mpicturebutton.setonclicklistener(cameralistener);           final imageview imageview = (imageview)findviewbyid(r.id.pictureimagebutton);            //register button listener         log.d("check", "ckpoint 2");         mregisterbutton.setonclicklistener(new view.onclicklistener() {             //log.d("check", "ckpoint 2");             @override             public void onclick(view view) {                  log.d("check", "ckpoint signup click register 100");                 final string username = musername.gettext().tostring().trim();                 final string password = muserpassword.gettext().tostring().trim();                 final string email = museremail.gettext().tostring().trim();                    //parse picture                 imageview.builddrawingcache();                 bitmap bitmap = imageview.getdrawingcache();                 // convert byte                 bytearrayoutputstream stream = new bytearrayoutputstream();                 // compress image lower quality scale 1 - 100                 bitmap.compress(bitmap.compressformat.png, 100, stream);                 byte[] image = stream.tobytearray();                 // create parsefile                 final parsefile file = new parsefile("profile.png", image);                 // upload image parse cloud                 file.saveinbackground(new savecallback() {                                           @override                                           public void done(parseexception e) {                                               if (e != null) {                                                   alertdialog.builder builder = new alertdialog.builder(register.this);                                                   builder.setmessage(e.getmessage());                                                   builder.settitle("sorry");                                                   builder.setpositivebutton("ok", new dialoginterface.onclicklistener() {                                                       @override                                                       public void onclick(dialoginterface dialoginterface, int i) {                                                           dialoginterface.dismiss();                                                       }                                                   });                                                   alertdialog dialog = builder.create();                                                   dialog.show();                                               }                                               else                                               {                                                   toast.maketext(register.this, "sucessfully saved", toast.length_long).show();                                               }                                           }                                       },                         new progresscallback() {                             @override                             public void done(integer integer) {                                  parseuser user = new parseuser();                                 user.setusername(username);                                 user.setpassword(password);                                 user.setemail(email);                                 user.put("imageprofile",file);                                  user.signupinbackground(new signupcallback() {                                     @override                                     public void done(parseexception e) {                                         if (e == null) {                                             toast.maketext(register.this, "sucessfully signed up", toast.length_long).show();                                              //take user home                                             intent takeuserhome = new intent(register.this, login.class);                                             startactivity(takeuserhome);                                         } else {                                              alertdialog.builder builder = new alertdialog.builder(register.this);                                             builder.setmessage(e.getmessage());                                             builder.settitle("sorry");                                             builder.setpositivebutton("ok", new dialoginterface.onclicklistener() {                                                 @override                                                 public void onclick(dialoginterface dialoginterface, int i) {                                                     dialoginterface.dismiss();                                                 }                                             });                                             alertdialog dialog = builder.create();                                             dialog.show(); }}});}}); }; });} 

but getting error saying unable encode unsaved parse file, know there questions, want know how can make sure file uploaded first proceed on next steps? y can't @ same time? how api written?

move whole user.signupinbackground code file.saveinbackground:done progresscallback:done....


Comments