2014-12-03 77 views
0

我试图保存与我的图像类有关系的项目。我可以节省的项目,我可以seperately保存图像,但是当我在他们的关系,储蓄如果抛出这个错误:saveInBackground抛出异常“未保存的ParseObject”

unable to encode an association with an unsaved ParseObject 

这里是我的代码:

myAdvert = new ParseObject("Items"); 
myAdvert.put("title", "some title"); 
if (pic1Set) { 
    Bitmap bitmap = ((BitmapDrawable) pic1.getDrawable()) 
        .getBitmap(); 
    ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); 
    byte[] byteArray = stream.toByteArray(); 
    myPhoto1 = new ParseObject("Images"); 

    filePhoto = new ParseFile("image.png", byteArray); 
    filePhoto.saveInBackground(new SaveCallback() { 

     @Override 
     public void done(ParseException e) { 
      if (e == null) { 
       myPhoto1.put("image", filePhoto); 
       ParseRelation relation = myAdvert.getRelation("pictures"); 
       relation.add(myPhoto1); 
       myAdvert.saveInBackground(new SaveCallback() { 

        @Override 
        public void done(ParseException e) { 
         // TODO Auto-generated method stub 
         if (e != null) { 
-->       // THIS IS WHERE THE ERROR IS THROWN!!!! 
          Log.d("error", e.toString()); 
         } else { 

          } 
         } 
        }); 
       } else { 
        Log.d("wow, error", e.toString()); 
        Toast.makeText(getApplicationContext(), 
         "Error saving: " + e.getMessage(), 
         Toast.LENGTH_SHORT).show(); 
       } 
      } 

     }); 

回答

1

让我们考虑这个一个评论和一些额外的信息,而不是一个答案 -

我试图登录时运行到相同的异常,但它会发生只有当我有一些行动离线完成本地数据存储工作时 我也有ACL上。 我猜这与尝试从错误的顺序或其他东西中保存从我的脱机工作固定的东西有关。

我正在调试我的 - 祝大家好运 - 让我知道如果你找到了一些东西。

+0

您只需保存parseObject,然后将其添加到关系即可。 – 2014-12-12 20:44:12

+0

嗯,我并没有试图添加一个关系 - 它试图保存一个对象,有时候在尝试注册一个用户时发生在我身上。 我猜测它的ACL需要链接到用户的本地数据存储中的对象 - 并且当成为在线时,某些东西正在变得混乱。 – jBOB 2014-12-14 13:05:41