【问题标题】:Android NotSerializableExceptionAndroid NotSerializableException
【发布时间】:2015-06-01 10:34:33
【问题描述】:

我有一个名为 Run 的对象,它包含 4 个字符串、一个 string[]、2 个 float[] 和 3 个 float。它实现了可序列化,因此我可以将其写入文件。这是我用来保存文件的代码...

}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(); 以及上述代码中的 else 错误。我该如何解决这个问题?

【问题讨论】:

    标签: java android file serialization


    【解决方案1】:

    异常中命名的类没有实现Serializable.

    更改异常中命名的类,使其实现Serializable. 重复直到关闭。如果它是 JRE 类或其他不受您控制的类,则必须首先查看为什么要尝试对其进行序列化。

    【讨论】:

      猜你喜欢
      • 2013-10-18
      • 2014-01-31
      • 2013-05-14
      • 2023-04-03
      • 2014-07-23
      • 2015-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多