与Libgdx的JsonBeans
非常混淆。试图保存&将游戏进度加载到本地存储。初始化文件:
file=Gdx.files.local(FILENAME);
读json:
if (file.exists()) {
JsonReader jsonReader = new JsonReader();
JsonValue jv = jsonReader.parse(file.reader());
levels = jv.getInt(LEVELS, 1);
}
应用已在NullPointerException
levels = jv.getInt(LEVELS, 1);
jv
时死亡,null
为Json json=new Json(JsonWriter.OutputType.json);
json.setWriter(file.writer(true));
json.writeObjectStart();
json.writeValue(LEVELS, levels);
json.writeObjectEnd();
。
但写作也不起作用,输出文件为空:
ID |Year |City |Population
--- |------- |------ |----------
1 | 2016 | Chennai | 1200000
2 | 2016 | Salem | 120000
3 | 2015 | Chennai | 1100000
4 | 2015 | Salem | 200000
有什么建议吗?提前谢谢。
答案 0 :(得分:1)
尝试使用Gdx.files.internal而不是Gdx.files.local,因为您可能没有权限写入本地存储并从本地存储读取。
以管理员身份运行桌面(我认为足够了)
为android添加对android清单的写/读权限。
答案 1 :(得分:0)
Goddamn,Libgdx wiki的教程非常缺乏信息。
首先,从未提及将Writer
设置为Json
实例所需的内容,其次,在阅读之后,感觉仍然是在光盘上录制json的所有工作都是由Json
类完成的,但它不是。你需要自己做这件事:
file.writeString(json.prettyPrint(progress), false);
之后一切顺利。谢谢大家。