Hi there, I am hitting a brickwall with serialization of a subclass of Location (probably more a Java question actuall, but let's try anyway).
Location is not serializable. I have a first subclass called FALocation that does not have any instance variables. I have declared it serializable. Then I have a second class called Waypoint that looks like this: public class Waypoint extends FALocation implements Serializable { /** * */ private static final long serialVersionUID = 1L; /* Class variables *******************************************************/ private static int CLASS_VERSION=1; //Used to version parcels /* Instance variables ****************************************************/ private transient String type=DataHelper.PT_TYPE_US; private transient String country; private transient String name=null; private transient String description=null; private transient int elevation = 0; private transient int population = 0; // Afterthought, added to match the DB structure /* Constructors **********************************************************/ public Waypoint() { super(); } public Waypoint(double lat, double lon, String name, String description) { super(lat, lon); this.setName(name); this.setDescription(description); } public Waypoint(Location l) { super(l); } public Waypoint(String provider) { super(provider); } /* Implementing serializable */ private void writeObject(java.io.ObjectOutputStream out) throws IOException { Log.v("DroidFA", "Serialising \"%s\" (v%d).", Waypoint.class.getSimpleName(), CLASS_VERSION); out.writeInt(CLASS_VERSION); out.writeObject(type); out.writeObject(country); out.writeObject(name); out.writeObject(description); out.writeInt(elevation); out.writeInt(population); } private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { int serialClassVersion = in.readInt(); Log.v("DroidFA", "Deserialising \"%s\" (v%d).", Waypoint.class.getSimpleName(),serialClassVersion); type = (String) in.readObject(); country = (String) in.readObject(); name = (String) in.readObject(); description = (String) in.readObject(); elevation = in.readInt(); population = in.readInt(); } } Serialization works fine. Deseriamization produces the followwing exception (the leg object contains a waypoint).: 10-05 13:50:35.259: WARN/System.err(7867): java.io.InvalidClassException: android.location.Location; IllegalAccessException 10-05 13:50:35.267: WARN/System.err(7867): at java.io.ObjectInputStream.resolveConstructorClass(ObjectInputStream.java: 2010) 10-05 13:50:35.267: WARN/System.err(7867): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2095) 10-05 13:50:35.267: WARN/System.err(7867): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java: 929) 10-05 13:50:35.267: WARN/System.err(7867): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2285) 10-05 13:50:35.278: WARN/System.err(7867): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2240) 10-05 13:50:35.278: WARN/System.err(7867): at com.droidfa.navigation.Leg.readObject(Leg.java:262) .../... Any help will be greatly appreciated. Many thanks in advance, Jean-Michel -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en