2014-12-03 3 views
0

내 이미지 클래스에 관계가있는 항목을 저장하려고합니다. 나는 항목을 저장할 수 있습니다, 그리고 난 별도로 이미지를 저장할 수 있습니다,하지만 난 관계로 저장하고 할 때이 오류가 발생하는 경우 : 여기 saveInBackground 예외 "저장되지 않은 ParseObject"throw합니다

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 on. 오프라인 작업에서 고정 된 물건을 잘못된 순서 또는 다른 것으로 저장하려는 시도와 관련이 있다고 생각합니다.

저는 제 디버깅을 위해 노력하고 있습니다. 우리 모두에게 행운을 빕니다. 뭔가 찾으면 알려주세요.

+0

parseObject를 관계에 추가하기 전에 저장하면됩니다. –

+0

글쎄요, 관계를 추가하려하지 않았습니다. 개체를 저장하려고 할 때와 때로는 사용자를 등록하려고 할 때 때때로 저에게 일어납니다. ACL이 사용자에게 연결되어야하는 로컬 데이터 저장소의 개체를 추측하고 있습니다. 온라인 상태가되면 뭔가 엉망입니다. – jBOB

관련 문제