【发布时间】:2016-05-07 23:28:54
【问题描述】:
我正在尝试为我的 LibGdx 游戏实现保存功能。这只是为了我的学习目的,所以我试图在手机上重新创建 Fallout Shelter 游戏,但只是作为桌面版本。当我尝试保存或加载时,出现此错误:
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: com.badlogic.gdx.utils.Array
这里是load方法,在游戏启动时调用,总是报错
private void Load() {
try {
// Open file to read from, named SavedObj.sav.
FileInputStream saveFile = new FileInputStream("SaveGame.sav");
// Create an ObjectInputStream to get objects from save file.
ObjectInputStream save = new ObjectInputStream(saveFile);
energy = (Integer) save.readObject();
System.out.println(energy);
food = (Integer) save.readObject();
System.out.println(food);
water = (Integer) save.readObject();
System.out.println(water);
maxEnergy = (Integer) save.readObject();
System.out.println(maxEnergy);
maxFood = (Integer) save.readObject();
System.out.println(maxFood);
maxWater = (Integer) save.readObject();
System.out.println(maxWater);
caps = (Integer) save.readObject();
System.out.println(caps);
maxDwellers = (Integer) save.readObject();
System.out.println(maxDwellers);
dwellers = (Array<Dweller>) save.readObject();
//Close the save file
save.close();
} catch (Exception exc) {
exc.printStackTrace(); // If there was an error, print the info.
}
}
当我尝试加载Dwellers列表时,它总是发现该行有问题(保存有相同的错误并在同一行中找到错误)
dwellers = (Array<Dweller>) save.readObject();
然后它给出了上面提到的错误。这个类正在使用 java.io.Serializable 并已实现,正如其他类似的问题所暗示的那样,但无论我是否实现了它,我仍然遇到同样的错误。
【问题讨论】:
-
除非我遗漏了什么,否则
com.badlogic.gdx.utils.Array类不会实现Serializable。哪个类实现了Serializable?
标签: java arraylist libgdx serializable