正如标题中所述,在android仿真器上运行应用程序时,只在上运行时,会出现读取文件的错误,否则在桌面启动程序上运行良好。
到目前为止,我已经尝试重新启动android并确保com.badlogic.gdx.scenes.scene2d.ui.TextTooltip$TextTooltipStyle
:没有出现在json文件中,但它们都没有工作。
任何建议都会感谢,因为我是无知的。这似乎只有在使用textFields时才会出现,它使用我的菜单屏幕上的皮肤,这与im一样奇怪,只使用LIBGDX工具提供的默认uiskins。
首先,我将向您展示所讨论的代码行(如第58行所述)将在下面紧跟着JSON文件,其次是完整的错误报告第三行:
skin =新Skin(Gdx.files.internal("ui/uiskin.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.Skin$TintedDrawable: {
dialogDim: { name: white, color: { r: 0, g: 0, b: 0, a: 0.45 } }
},
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.ScrollPane$ScrollPaneStyle: {
default: { vScroll: default-scroll, hScrollKnob: default-round-large, background: default-
rect, hScroll: default-scroll, vScrollKnob: default-round-large }
},
com.badlogic.gdx.scenes.scene2d.ui.SelectBox$SelectBoxStyle: {
default: {
font: default-font, fontColor: white, background: default-select,
scrollStyle: default,
listStyle: { font: default-font, selection: default-select-selection }
}
},
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.Window$WindowStyle: {
default: { titleFont: default-font, background: default-window, titleFontColor: white },
dialog: { titleFont: default-font, background: default-window, titleFontColor: white,
stageBackground: dialogDim }
},
com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle: {
default-horizontal: { 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: selection, fontColorSelected: white, font:
default-font }
},
com.badlogic.gdx.scenes.scene2d.ui.Touchpad$TouchpadStyle: {
default: { background: default-pane, knob: default-round-large }
},
com.badlogic.gdx.scenes.scene2d.ui.Tree$TreeStyle: {
default: { minus: tree-minus, plus: tree-plus, selection: default-select-selection }
}
}
E/AndroidRuntime: FATAL EXCEPTION: GLThread 2341
Process: com.mygdx.game, PID: 842
com.badlogic.gdx.utils.SerializationException: Error reading file: ui/uiskin.json
at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:106)
at com.badlogic.gdx.scenes.scene2d.ui.Skin.<init>(Skin.java:83)
at com.mygdx.game.scenes.MenuUI.<init>(MenuUI.java:58)
at com.mygdx.game.screens.MainMenu.<init>(MainMenu.java:41)
at com.mygdx.game.MyGdxGame.create(MyGdxGame.java:24)
at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:281)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1557)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1272)
Caused by: com.badlogic.gdx.utils.SerializationException: Error reading file: ui/uiskin.json
at com.badlogic.gdx.utils.Json.fromJson(Json.java:803)
at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:104)
at com.badlogic.gdx.scenes.scene2d.ui.Skin.<init>(Skin.java:83)
at com.mygdx.game.scenes.MenuUI.<init>(MenuUI.java:58)
at com.mygdx.game.screens.MainMenu.<init>(MainMenu.java:41)
at com.mygdx.game.MyGdxGame.create(MyGdxGame.java:24)
at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:281)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1557)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1272)
Caused by: com.badlogic.gdx.utils.SerializationException: Font file not found: default.fnt
at com.badlogic.gdx.scenes.scene2d.ui.Skin$3.read(Skin.java:541)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$3.read(Skin.java:532)
at com.badlogic.gdx.utils.Json.readValue(Json.java:1006)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:469)
at com.badlogic.gdx.utils.Json.readValue(Json.java:972)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.readNamedObjects(Skin.java:518)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:507)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:501)
at com.badlogic.gdx.utils.Json.readValue(Json.java:1006)
at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:469)
at com.badlogic.gdx.utils.Json.fromJson(Json.java:801)
at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:104)
at com.badlogic.gdx.scenes.scene2d.ui.Skin.<init>(Skin.java:83)
at com.mygdx.game.scenes.MenuUI.<init>(MenuUI.java:58)
at com.mygdx.game.screens.MainMenu.<init>(MainMenu.java:41)
at com.mygdx.game.MyGdxGame.create(MyGdxGame.java:24)
at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:281)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1557)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1272)
发布于 2022-09-09 10:42:01
错误是找不到字体文件。桌面可以适应Android资产的位置要求,但不是相反的。看看这个
Managing assets between desktop and device version in libgdx
因此,如果libGDX资产都进入Android想要的assets
目录,就更容易了,因为json中的这一行必须检查默认位置com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: default.fnt } }
。
https://stackoverflow.com/questions/73642733
复制相似问题