libgdx android studio json皮肤标签错误

时间:2017-08-18 21:42:16

标签: java android libgdx

我正在尝试使用Android Studio在libgdx(scene2d)中创建皮肤标签。很确定我没有在json文件中犯任何错误,因为我正在从工作教程中复制代码。 我想要启动皮肤的方法:

private void initLabel() {
    skin = new Skin(Gdx.files.internal("skin.json"));
    label = new Label("Score: ", skin);
}

Json文件(试图使用“// @formatter:off”和许多其他选项总是得到类似的错误):

com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle:{
default: { font: default-font, fontColor: white } }

我收到的错误:

com.badlogic.gdx.utils.SerializationException: Error reading file: uiskin.json
                                                                at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:98)
                                                                at com.badlogic.gdx.scenes.scene2d.ui.Skin.<init>(Skin.java:75)...

... Caused by: com.badlogic.gdx.utils.SerializationException: Error parsing JSON on line 3 near: ne2d.ui.Label$LabelStyle:{
                                                                *ERROR*default: { font: default-font, fontColor: white }
                                                             }

即使我犯了错误或类似的错误,我仍然会将此原因归结为错误:“第3行附近:ne2d.ui.Label $ LabelStyle:{错误默认值:{字体:“

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这是因为您创建的应用中没有定义默认字体。教程代码允许您创建字体名称default-font并稍后将其添加到皮肤。因此,您需要做的是生成一个新字体,然后将其添加到皮肤,最后启动skin.json文件。

    private BitmapFont font;

    private void initLabel() {
    //create a bitmap font of your choice
    font = new BitmapFont();
    //create the skin using default constructor
    skin = new Skin();
    skin.add("default-font",font); 
    skin = Skin.load(Gdx.files.internal("skin.json"));
    label = new Label("Score: ", skin);
    }

重要的部分是skin.add("default-font",font);您输入的名称也必须在skin.json文件中相同,在您的情况下为font: default-font