Note that there are some explanatory texts on larger screens.

plurals
  1. POJava serialization - Android deserialization
    primarykey
    data
    text
    <p>I have tried implementing cross platform serialization between Java and Android. I have used Serializable, and having my code in Android in the same package as in desktop Java.</p> <p>Source: java-desktop serializing</p> <pre><code> Student student=new Student(); student.setName("John"); student.setSurname("Brown"); student.setNumber(776012345); try { FileOutputStream fout = new FileOutputStream("thestudent.dat"); ObjectOutputStream oos = new ObjectOutputStream(fout); oos.writeObject(student); oos.close(); } catch (Exception e) { e.printStackTrace(); } } </code></pre> <p>Source: Android - deserializing</p> <pre><code>File file=new File(getExternalFilesDir(null), "thestudent.dat"); try { FileInputStream fint = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream(fint); Student stud=(Student) ois.readObject(); ois.close(); } catch (Exception e) { e.printStackTrace(); } } </code></pre> <p>Student is a class, which implements Serializable. On desktop I serialize instance of student to "thestudent.dat". I put this file on SD card at Android device and I am trying to deserialize it. I am getting error <strong>java.lang.ClassCastException: javaserializace.Student</strong>. But why? I have same package when serializing, same package when deserializing. All what is different is project name. Do you see any solution?</p> <p>Edited - source of Student class:</p> <pre><code>public class Student implements Serializable { private String name; private String surname; private int number; private char gender; private int age; private long rc; private int id; public Student(){ ; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public char getGender() { return gender; } public void setGender(char gender) { this.gender = gender; } public int getId() { return id; } public void setId(int id) { this.id = id; } public long getRc() { return rc; } public void setRc(long rc) { this.rc = rc; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload