2015-03-27 3 views
0

У меня есть объект Run, который содержит 4 строки, строку [], 2 float [] и 3 поплавки. Он реализует сериализуемое значение, поэтому я могу записать его в файл. Вот код, я использую, чтобы сохранить файл ...Android NotSerializableException

}else{ 
     run.setName(runName.getText().toString()); 
     FileOutputStream fos = this.openFileOutput(runName.getText().toString(), Context.MODE_PRIVATE); 
     ObjectOutputStream os = new ObjectOutputStream(fos); 
     os.writeObject(run); 
     os.close(); 
     fos.close(); 
     Toast.makeText(this,"Run saved!", Toast.LENGTH_LONG).show(); 
     Intent intent = new Intent(this, MainScreen.class); 
     startActivity(intent); 
     finish(); 

    } 

Это прекрасно работает без ошибок, но когда я пытаюсь получить его в другой деятельности, я получаю NotSerializableException. Вот код, я использую, чтобы получить его ...

FileInputStream fileInput = this.openFileInput(name); 
    ObjectInputStream objectInput = new ObjectInputStream(fileInput); 
    Run run = (Run) objectInput.readObject(); 
    fileInput.close(); 
    objectInput.close(); 

Это вызывает ошибку на Run Run = (Run) objectInput.readObject() ;, а на остальное в приведенном выше коде. Как я могу решить эту проблему?

ответ

1

Класс назван в исключении не реализует Serializable.

Измените класс с именем в исключении, так это реализовать Serializable. Повторять до закрытия. Если это класс JRE или другой класс, который не находится под вашим контролем, вам придется проанализировать, почему вы пытаетесь его сериализовать.

Смежные вопросы