2015-01-05 2 views
-4

Когда я пытаюсь запустить мой проект аварии моей игры с этой ошибкой:Почему json не работает?

Exception in thread "LWJGL Application" java.lang.NullPointerException 
at com.badlogic.gdx.utils.Json.writeValue(Json.java:372) 
at com.mygdx.game.GuardarMundo.write(GuardarMundo.java:12) 
at com.mygdx.game.Mundo.<init>(Mundo.java:71) 
at com.mygdx.game.Strategy.create(Strategy.java:9) 
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136) 
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114) 

И код:

static int x,z; 
static String type; 
@Override 
public void write(Json json) { 
    json.writeValue("X", x); 
    json.writeValue("Z", z); 
    json.writeValue("Type", type); 
} 

@Override 
public void read(Json json, JsonValue jsonData) { 
    // TODO Auto-generated method stub 

} 
public static void setBlock(int x2,int z2,String type2){ 
    x= x2; 
    z=z2; 
    type= type2; 
} 

В чем проблема?

+3

JSON делает произведение. Недопустимый заголовок. –

+0

вы вызываете метод 'write()' перед методом 'setBlock()' и, следовательно, 'type' имеет значение null. – Setu

+0

похоже 'тип' здесь null. поскольку 'x' и' y' являются примитивными типами. присвойте 'type =" "' затем проверьте, вызывается ли такая же ошибка? – iMBMT

ответ

1

Глядя на источник here, если вы звоните json.writeValue() из ниоткуда, вы получите NullPointerException, потому что writer поле в json объект будет null.

Похоже, что вы должны сделать один из методов json.toJson(...). Те инициализируют writer для вас, а затем используют его для различных звонков на writeValue().