파일을 읽는 동안 InvalidClassException serialVersionUid 오류가 발생했습니다.

Adarsh

저장된 메모를 읽으려고 할 때 다음과 같은 오류가 발생한다는 응용 프로그램 코드를 메모하는 메모가 있습니다.

 java.io.InvalidClassException: com.slide.adarsh.ezswipe.Note; Incompatible class (SUID): com.slide.adarsh.ezswipe.Note: static final long serialVersionUID =3563451862165282381L; but expected com.slide.adarsh.ezswipe.Note: static final long serialVersionUID =0L;
12-04 18:58:21.854 18205-18205/com.slide.adarsh.ezswipe W/System.err:     at java.io.ObjectInputStream.verifyAndInit(ObjectInputStream.java:2341)
12-04 18:58:21.854 18205-18205/com.slide.adarsh.ezswipe W/System.err:     at java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1643)
12-04 18:58:21.854 18205-18205/com.slide.adarsh.ezswipe W/System.err:     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:657)
12-04 18:58:21.854 18205-18205/com.slide.adarsh.ezswipe W/System.err:     at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1782)
12-04 18:58:21.854 18205-18205/com.slide.adarsh.ezswipe W/System.err:     at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:761)
12-04 18:58:21.854 18205-18205/com.slide.adarsh.ezswipe W/System.err:     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1983)
12-04 18:58:21.854 18205-18205/com.slide.adarsh.ezswipe W/System.err:     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1940)
12-04 18:58:21.854 18205-18205/com.slide.adarsh.ezswipe W/System.err:     at com.slide.adarsh.ezswipe.Utilities.getAllSavedNotes(Utilities.java:62)
12-04 18:58:21.854 18205-18205/com.slide.adarsh.ezswipe W/System.err:     at com.slide.adarsh.ezswipe.NoteList.onResume(NoteList.java:32)

다음은 코드입니다.

Utilities.java

public class Utilities {
  public static final String FILE_EXTENSION=".bin";

  public static boolean saveNote(Context context,Note note) {
    String fileName=String.valueOf(note.getDateTime())+FILE_EXTENSION;

    FileOutputStream fos;
    ObjectOutputStream oos;

    try {
        fos=context.openFileOutput(fileName,context.MODE_PRIVATE);
        oos=new ObjectOutputStream(fos);
        oos.writeObject(note);
        oos.close();
        fos.close();

    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
    return true;
  }

  public static ArrayList<Note> getAllSavedNotes(Context context){
    ArrayList<Note> not=new ArrayList<Note>();
    File filesDir=context.getFilesDir();

    ArrayList<String> noteFiles=new ArrayList<String>();

    for (String file : filesDir.list()){
        if (file.endsWith(FILE_EXTENSION)){
            noteFiles.add(file);
        }
    }

    FileInputStream fis;
    ObjectInputStream ois;

    for (int i=0;i<noteFiles.size();i++) {
        try {
            fis=context.openFileInput(noteFiles.get(i));
            ois=new ObjectInputStream(fis);

            not.add((Note) ois.readObject());  //this is the place where exception is raised
            fis.close();
            ois.close();

        } catch (IOException|ClassNotFoundException e) {
            e.printStackTrace();
            return null;
        }
    }

    return not;
  }
}

다음은 구현하는 노트 클래스입니다 Serializable.

public class Note implements Serializable  {
  private long mDateTime; //creation time of the note
  private String mTitle; //title of the note
  private String mContent; //content of the note

  public Note(long dateInMillis, String title, String content) {
    mDateTime = dateInMillis;
    mTitle = title;
    mContent = content;
  }

  public void setDateTime(long dateTime) {
    mDateTime = dateTime;
  }

  public void setTitle(String title) {
    mTitle = title;
  }

  public void setcontent(String content) {
    mContent = content;
  }

  public long getDateTime() {
    return mDateTime;
  }


  public String getDateTimeFormatted(Context context) {
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"
            , context.getResources().getConfiguration().locale);
    formatter.setTimeZone(TimeZone.getDefault());
    return formatter.format(new Date(mDateTime));
  }

  public String getTitle() {
    return mTitle;
  }

  public String getContent() {
    return mContent;
  }

}
예수님은 당신을 사랑합니다

이는 serialVersionUIDNote pojo에 추가하지 않기 때문 입니다.

구현하는 각 클래스 Serializable는 추가해야합니다.serialVersionUID

메모를 다음으로 변경할 수 있습니다.

public class Note implements Serializable {
  private static final long serialVersionUID = 1234567L;
  ...
  ...
}

그러나 데이터가 변경 될 때마다 이전 데이터와 호환되지 않는 변경이있을 수 있으므로 데이터 지속성을 위해 Serializable에 의존 해서는 안됩니다. Serializable 객체는 내 생각에 임시 사용을 위해 사용해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파일을 쓰는 동안 오류가 발생했습니다.

분류에서Dev

R에서 csv 파일을 읽는 동안 오류가 발생했습니다.

분류에서Dev

Snappy 압축 파일을 읽는 동안 오류가 발생했습니다.

분류에서Dev

파일을 여는 동안 오류가 발생했습니다. 파이썬

분류에서Dev

AWS Lambda의 파일 시스템에서 PNG 파일을 읽는 동안 오류가 발생했습니다.

분류에서Dev

Django 가져 오기 내보내기 : CSV 파일을 읽는 동안 오류가 발생했습니다.

분류에서Dev

jar 파일을 추출하는 동안 오류가 발생했습니다.

분류에서Dev

AWK로 파일을 처리하는 동안 오류가 발생했습니다.

분류에서Dev

C #에서 파일을 만드는 동안 오류가 발생했습니다.

분류에서Dev

Python을 사용하여 CSV 파일을 읽는 동안 오류가 발생했습니다.

분류에서Dev

Python2.7을 사용하여 압축 된 csv 파일을 읽는 동안 오류가 발생했습니다.

분류에서Dev

코드에서 XML 값을 읽는 동안 오류가 발생했습니다.

분류에서Dev

pcr 값을 읽는 동안 TPM 오류 (7)가 발생했습니다.

분류에서Dev

쿠키에서 값을 읽는 동안 오류가 발생했습니다.

분류에서Dev

iText를 사용하여 PDF 파일에서 JSON을 읽는 동안 오류가 발생했습니다.

분류에서Dev

R에서 조건부로 파일을 읽는 동안 오류가 발생했습니다.

분류에서Dev

서버 측에서 Excel 파일을 읽고 저장하는 동안 오류가 발생했습니다.

분류에서Dev

배치 파일에서 값을 읽고 인쇄하는 동안 오류가 발생했습니다.

분류에서Dev

배치 파일에서 값을 읽고 인쇄하는 동안 오류가 발생했습니다.

분류에서Dev

비표준 줄 구분 기호로 CSV 파일을 읽는 동안 오류가 발생했습니다.

분류에서Dev

print 문을 쓰는 동안 오류가 발생했습니다.

분류에서Dev

Spectacle을 여는 동안 오류가 발생했습니다.

분류에서Dev

개체 파일에 연결하는 동안 오류가 발생했습니다.

분류에서Dev

인쇄를 컴파일하는 동안 오류가 발생했습니다.

분류에서Dev

for 루프에서 컴파일하는 동안 오류가 발생했습니다.

분류에서Dev

Boost.Bind를 컴파일하는 동안 오류가 발생했습니다.

분류에서Dev

파일 세트를 복사하는 동안 오류가 발생했습니다.

분류에서Dev

오류. 요청을 처리하는 동안 오류가 발생했습니다.

분류에서Dev

오류 원인 : XML '파일의 조기 끝'을 처리하는 동안 오류가 발생했습니다.

Related 관련 기사

  1. 1

    파일을 쓰는 동안 오류가 발생했습니다.

  2. 2

    R에서 csv 파일을 읽는 동안 오류가 발생했습니다.

  3. 3

    Snappy 압축 파일을 읽는 동안 오류가 발생했습니다.

  4. 4

    파일을 여는 동안 오류가 발생했습니다. 파이썬

  5. 5

    AWS Lambda의 파일 시스템에서 PNG 파일을 읽는 동안 오류가 발생했습니다.

  6. 6

    Django 가져 오기 내보내기 : CSV 파일을 읽는 동안 오류가 발생했습니다.

  7. 7

    jar 파일을 추출하는 동안 오류가 발생했습니다.

  8. 8

    AWK로 파일을 처리하는 동안 오류가 발생했습니다.

  9. 9

    C #에서 파일을 만드는 동안 오류가 발생했습니다.

  10. 10

    Python을 사용하여 CSV 파일을 읽는 동안 오류가 발생했습니다.

  11. 11

    Python2.7을 사용하여 압축 된 csv 파일을 읽는 동안 오류가 발생했습니다.

  12. 12

    코드에서 XML 값을 읽는 동안 오류가 발생했습니다.

  13. 13

    pcr 값을 읽는 동안 TPM 오류 (7)가 발생했습니다.

  14. 14

    쿠키에서 값을 읽는 동안 오류가 발생했습니다.

  15. 15

    iText를 사용하여 PDF 파일에서 JSON을 읽는 동안 오류가 발생했습니다.

  16. 16

    R에서 조건부로 파일을 읽는 동안 오류가 발생했습니다.

  17. 17

    서버 측에서 Excel 파일을 읽고 저장하는 동안 오류가 발생했습니다.

  18. 18

    배치 파일에서 값을 읽고 인쇄하는 동안 오류가 발생했습니다.

  19. 19

    배치 파일에서 값을 읽고 인쇄하는 동안 오류가 발생했습니다.

  20. 20

    비표준 줄 구분 기호로 CSV 파일을 읽는 동안 오류가 발생했습니다.

  21. 21

    print 문을 쓰는 동안 오류가 발생했습니다.

  22. 22

    Spectacle을 여는 동안 오류가 발생했습니다.

  23. 23

    개체 파일에 연결하는 동안 오류가 발생했습니다.

  24. 24

    인쇄를 컴파일하는 동안 오류가 발생했습니다.

  25. 25

    for 루프에서 컴파일하는 동안 오류가 발생했습니다.

  26. 26

    Boost.Bind를 컴파일하는 동안 오류가 발생했습니다.

  27. 27

    파일 세트를 복사하는 동안 오류가 발생했습니다.

  28. 28

    오류. 요청을 처리하는 동안 오류가 발생했습니다.

  29. 29

    오류 원인 : XML '파일의 조기 끝'을 처리하는 동안 오류가 발생했습니다.

뜨겁다태그

보관