I've got an object that im reading and writing to and from fileinputstreams/objectinputstreams
and objectinputstreams/objectoutputstreams
. I keep getting errors that java excpected one serialversionUID
, but found another.
In my class I've implemented serializable
and have a field like static final long serialVersionUID = 1L;
which I thought was enough.
I'm new to java serialization. What am I missing here?
EDIT If it matters, I'm actually trying to write and read an **ArrayList<MyObject>**
Here's the full trace:
java.io.InvalidClassException: com.luxurymode.pojos.Reminder; Incompatible class (SUID): com.luxurymode.pojos.Reminder: static final long serialVersionUID =4209360273818925922L; but expected com.luxurymode.pojos.Reminder: static final long serialVersionUID =1L;
W/System.err( 4504): at java.io.ObjectInputStream.verifyAndInit(ObjectInputStream.java:2723)
W/System.err( 4504): at java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1848)
W/System.err( 4504): at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:826)
W/System.err( 4504): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2066)
W/System.err( 4504): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:929)
W/System.err( 4504): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2285)
W/System.err( 4504): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2240)
W/System.err( 4504): at java.util.ArrayList.readObject(ArrayList.java:662)
W/System.err( 4504): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 4504): at java.lang.reflect.Method.invoke(Method.java:521)
W/System.err( 4504): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1537)
W/System.err( 4504): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1460)
W/System.err( 4504): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2139)
W/System.err( 4504): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:929)
W/System.err( 4504): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2285)
W/System.err( 4504): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2240)
W/System.err( 4504): at com.luxurymode.singletons.RemindersSingleton.<init>(RemindersSingleton.java:54)
W/System.err( 4504): at com.luxurymode.singletons.RemindersSingleton.getInstance(RemindersSingleton.java:66)
W/System.err( 4504): at com.luxurymode.views.AddReminderView.saveAlarm(AddReminderView.java:290)
W/System.err( 4504): at com.luxurymode.tab_2.RemindersActivity.onClick(RemindersActivity.java:94)
W/System.err( 4504): at android.view.View.performClick(View.java:2554)
W/System.err( 4504): at android.view.View$PerformClick.run(View.java:8962)
W/System.err( 4504): at android.os.Handler.handleCallback(Handler.java:587)
W/System.err( 4504): at android.os.Handler.dispatchMessage(Handler.java:92)
W/System.err( 4504): at android.os.Looper.loop(Looper.java:123)
W/System.err( 4504): at android.app.ActivityThread.main(ActivityThread.java:4627)
W/System.err( 4504): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 4504): at java.lang.reflect.Method.invoke(Method.java:521)
W/System.err( 4504): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
W/System.err( 4504): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
W/System.err( 4504): at dalvik.system.NativeStart.main(Native Method)
D/AndroidRuntime( 4504): Shutting down VM
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…