简体   繁体   English

无法读取Json文件

[英]Json file can't be read

I'm trying to use a TableLayout to create a menu on LibGDX but the json file I use for the skin can't be read. 我正在尝试使用TableLayout在LibGDX上创建菜单,但是无法读取用于皮肤的json文件。

I use this code to create the skin. 我使用此代码创建皮肤。

final Skin skin;
FileHandle skinFile = Gdx.files.internal("uiskin.json");
skin = new Skin(skinFile);

And the Json file looks like this : Json文件如下所示:

{
com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: default.fnt } },
com.badlogic.gdx.graphics.Color: {
        green: { a: 1, b: 0, g: 1, r: 0 },
        white: { a: 1, b: 1, g: 1, r: 1 },
        red: { a: 1, b: 0, g: 0, r: 1 },
        black: { a: 1, b: 0, g: 0, r: 0 }
},
com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle: {
        default: { down: default-round-down, up: default-round },
        toggle: { down: default-round-down, checked: default-round-down, up: default-round }
},
com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
        default: { down: default-round-down, up: default-round, font: default-font, fontColor: white },
        toggle: { down: default-round-down, up: default-round, checked: default-round-down, font: default-font, fontColor: white, downFontColor: red }
},
com.badlogic.gdx.scenes.scene2d.ui.SelectBox$SelectBoxStyle: {
        default: { listBackground: default-rect, listSelection: default-select-selection, font: default-font, fontColor: white, background: default-select }
},
com.badlogic.gdx.scenes.scene2d.ui.SplitPane$SplitPaneStyle: {
        default-vertical: { handle: default-splitpane-vertical },
        default-horizontal: { handle: default-splitpane }
},
com.badlogic.gdx.scenes.scene2d.ui.ScrollPane$ScrollPaneStyle: {
        default: { vScroll: default-slider, hScrollKnob: default-round-large, background: default-rect, hScroll: default-slider, vScrollKnob: default-round-large }
},
com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle: {
        default: { titleFont: default-font, background: default-window, titleFontColor: white }
},
com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle: {
        default: { background: default-slider, knob: default-slider-knob }
},
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
        default: { font: default-font, fontColor: white }
},
com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle: {
        default: { selection: selection, background: textfield, font: default-font, fontColor: white, cursor: cursor }
},
com.badlogic.gdx.scenes.scene2d.ui.CheckBox$CheckBoxStyle: {
        default: { checkboxOn: check-on, checkboxOff: check-off, font: default-font, fontColor: white }
},
com.badlogic.gdx.scenes.scene2d.ui.List$ListStyle: {
        default: { fontColorUnselected: white, selection: default-rect-pad, fontColorSelected: white, font: default-font }
}
}

I need for a school project, I would be glad if you can help me. 我需要一个学校项目,如果您能帮助我,我会很高兴。

Here is the error I get. 这是我得到的错误。

01-22 16:43:18.834: E/AndroidRuntime(25719): FATAL EXCEPTION: GLThread 4254
01-22 16:43:18.834: E/AndroidRuntime(25719): com.badlogic.gdx.utils.SerializationException: Error reading file: uiskin.json
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:96)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.scenes.scene2d.ui.Skin.<init>(Skin.java:73)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.me.mygdxgame.BlueToothOptionScreen.<init>(BlueToothOptionScreen.java:25)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.me.mygdxgame.Snake.create(Snake.java:17)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:334)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1534)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1263)
01-22 16:43:18.834: E/AndroidRuntime(25719): Caused by: com.badlogic.gdx.utils.SerializationException: Error reading file: uiskin.json
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.utils.Json.fromJson(Json.java:657)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:94)
01-22 16:43:18.834: E/AndroidRuntime(25719):    ... 6 more
01-22 16:43:18.834: E/AndroidRuntime(25719): Caused by: com.badlogic.gdx.utils.SerializationException: Error loading bitmap font: default.fnt
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.scenes.scene2d.ui.Skin$3.read(Skin.java:464)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.scenes.scene2d.ui.Skin$3.read(Skin.java:442)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.utils.Json.readValue(Json.java:834)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:410)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.utils.Json.readValue(Json.java:804)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.readNamedObjects(Skin.java:431)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:420)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:416)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.utils.Json.readValue(Json.java:834)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:410)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.utils.Json.fromJson(Json.java:655)
01-22 16:43:18.834: E/AndroidRuntime(25719):    ... 7 more
01-22 16:43:18.834: E/AndroidRuntime(25719): Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: default.png
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.graphics.Texture.load(Texture.java:142)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:112)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:108)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.graphics.g2d.BitmapFont.<init>(BitmapFont.java:171)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.graphics.g2d.BitmapFont.<init>(BitmapFont.java:152)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.graphics.g2d.BitmapFont.<init>(BitmapFont.java:120)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.scenes.scene2d.ui.Skin$3.read(Skin.java:461)
01-22 16:43:18.834: E/AndroidRuntime(25719):    ... 17 more
01-22 16:43:18.834: E/AndroidRuntime(25719): Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: default.png (Internal)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:74)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.files.FileHandle.length(FileHandle.java:563)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.backends.android.AndroidFileHandle.length(AndroidFileHandle.java:162)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:218)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:137)
01-22 16:43:18.834: E/AndroidRuntime(25719):    ... 26 more
01-22 16:43:18.834: E/AndroidRuntime(25719): Caused by: java.io.FileNotFoundException: default.png
01-22 16:43:18.834: E/AndroidRuntime(25719):    at android.content.res.AssetManager.openAsset(Native Method)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at android.content.res.AssetManager.open(AssetManager.java:315)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at android.content.res.AssetManager.open(AssetManager.java:289)
01-22 16:43:18.834: E/AndroidRuntime(25719):    at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:72)
01-22 16:43:18.834: E/AndroidRuntime(25719):    ... 30 more

The problem is in here: 问题在这里:

com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: default.fnt } },

It tries to download a BitmapFont . 它尝试下载BitmapFont Which is made of 1 xxx.fnt file and a xxx.png file. 由1个xxx.fnt文件和一个xxx.png文件组成。
You are probably trying to use one with only the .fnt file. 您可能正在尝试仅将.fnt文件与文件一起使用。 thus this error: 因此此错误:

Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: default.png

Use Hiero to generate them. 使用Hiero生成它们。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM