保存ParseFile时出现未知的parse.com错误

时间:2014-05-11 04:56:00

标签: android parse-platform encode

我有一个扩展解析对象的类。我试图将位图添加到此对象的实例。我收到一个错误,我找不到任何信息:

  

java.lang.IllegalStateException:无法对未保存的ParseFile进行编码。

仅在添加到对象时才会出现此错误,而不是在保存对象时。

以下是我检索图像的方法:(错误在最后一行)

 Uri selectedImage = imageReturnedIntent.getData();
                String[] filePathColumn = {MediaStore.Images.Media.DATA};

                Cursor cursor = getContentResolver().query(
                        selectedImage, filePathColumn, null, null, null);
                cursor.moveToFirst();

                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                String filePath = cursor.getString(columnIndex);
                cursor.close();

                Bitmap bitmap = BitmapFactory.decodeFile(filePath);

                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
                final byte[] data = stream.toByteArray();
                ad.addPicture(new ParseFile("image.png", data));

最后一行是抛出错误的地方。就像我说的,我有一个扩展ParseObject的类。这是该类中的方法:

public void addPicture(ParseFile... pic){
    for(ParseFile pf : pic){
        add(PICTURE, pf);
    }
}

1 个答案:

答案 0 :(得分:0)

阅读android files上的文档......

使用上传的文件是解析的两个步骤。

  1. 发布返回URL类型文件句柄(Url,name)
  2. 的文件
  3. 使用解析对象的字段,该字段是指向上传文件的Url的指针
  4. android中的示例显示进程#1使用

    file.saveInBackground();
    ParseObject jobApplication = new ParseObject("JobApplication");
    jobApplication.put("applicantName", "Joe Smith");
    jobApplication.put("applicantResumeFile", file);
    jobApplication.saveInBackground();