当我尝试运行我的项目时,我的游戏崩溃并出现以下错误:
Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.badlogic.gdx.utils.Json.writeValue(Json.java:376)
at com.mygdx.game.MyGdxGame.write(MyGdxGame.java:30)
at com.mygdx.game.MyGdxGame.create(MyGdxGame.java:25)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
代码是:
private Json json;
private int x = 1;
@Override
public void create() {
json = new Json();
write(json);
}
@Override
public void write(Json json) {
json.writeValue("X", x);
}
有什么问题吗?我找不到解决方案
最佳答案
查看source code ,看起来问题是你还没有设置作家。当您没有设置编写器时,不清楚您期望 writeValue
做什么,但您需要更改调用的方法(例如调用 prettyPrint
代替),或者先设置 writer。
例如:
private Json json;
private StringWriter writer;
writer = new StringWriter();
json = new Json();
json.setWriter(writer);
write(json);
然后您可以使用 writer.toString()
稍后获取 JSON。
关于java - 为什么 json 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27999105/