我有一个扩展解析对象的类。我试图将位图添加到此对象的实例。我收到一个错误,我找不到任何信息:
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);
}
}
答案 0 :(得分:0)
阅读android files上的文档......
使用上传的文件是解析的两个步骤。
android中的示例显示进程#1使用
file.saveInBackground();
ParseObject jobApplication = new ParseObject("JobApplication");
jobApplication.put("applicantName", "Joe Smith");
jobApplication.put("applicantResumeFile", file);
jobApplication.saveInBackground();