我有一个对象,它具有三个字段:两个字符串和一个Drawable
public class MyObject implements Serializable {
private static final long serialVersionUID = 1L;
public String name;
public String lastName;
public Drawable photo;
public MyObject() {
}
public MyObject(String name, String lastName, Drawable photo) {
this.name = name;
this.lastName = lastName;
this.photo = photo;
}
}
我想做的就是拯救一个ArrayList
这些对象到一个文件,但我不断得到NotSerializableException
02-02 23:06:10.825: WARN/System.err(13891): java.io.NotSerializableException: android.graphics.drawable.BitmapDrawable
我用来存储文件的代码:
public static void saveArrayList(ArrayList<MyObject> arrayList, Context context) {
final File file = new File(context.getCacheDir(), FILE_NAME);
FileOutputStream outputStream = null;
ObjectOutputStream objectOutputStream = null;
try {
outputStream = new FileOutputStream(file);
objectOutputStream = new ObjectOutputStream(outputStream);
objectOutputStream.writeObject(arrayList);
}
catch(Exception e) {
e.printStackTrace();
}
finally {
try {
if(objectOutputStream != null) {
objectOutputStream.close();
}
if(outputStream != null) {
outputStream.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
当可绘制对象未初始化时,一切正常。
预先感谢您的任何帮助。
java.io.NotSerializableException: android.graphics.drawable.BitmapDrawable
这条消息看起来很清楚 - 中的特定可绘制实例photo
字段是一个位图绘制,它不是为序列化而设计的。如果不处理不可序列化字段,您的类就无法序列化。
如果您能确保您的班级始终有一个BitmapDrawable
or a Bitmap,您可以查看此代码,了解如何处理Bitmap
field:
Android 如何保存位图 - 有错误的代码
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)