2016-03-06 146 views
0

我正嘗試使用Gdx.files.internal加載我的libgdx項目中的皮膚。但我收到以下例外︰如何在Android Studio上的libgdx項目中加載文件?

com.badlogic.gdx.utils.SerializationException: Error reading file: uiskin.json 

我有android子項目上assets文件夾中的uiskin.json。任何人都可以告訴我如何正確指定路徑?

這是項目結構的屏幕截圖:

enter image description here

這是我的皮膚文件:

{ 
    com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: myFont.fnt } }, 
    com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: { 
    default: { down: default-round-down, up: default-round, font: default-font }, 
    }, 
    com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle: { 
    default: { 
     titleFont: default-font 
    } 
    } 
} 

這是一個完整的堆棧:

03-06 16:20:49.785 16830-16919/com.mygdx.gdxhouse E/AndroidRuntime: FATAL EXCEPTION: GLThread 2645 
                    com.badlogic.gdx.utils.SerializationException: Error reading file: uiskin.json 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:97) 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin.<init>(Skin.java:74) 
                     at com.mygdx.gdxhouse.GDXHouse.create(GDXHouse.java:20) 
                     at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:290) 
                     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1505) 
                     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240) 
                    Caused by: com.badlogic.gdx.utils.SerializationException: Error reading file: uiskin.json 
                     at com.badlogic.gdx.utils.Json.fromJson(Json.java:694) 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:95) 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin.<init>(Skin.java:74)  
                     at com.mygdx.gdxhouse.GDXHouse.create(GDXHouse.java:20)  
                     at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:290)  
                     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1505)  
                     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)  
                    Caused by: com.badlogic.gdx.utils.SerializationException: Font file not found: myfont.fnt 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin$3.read(Skin.java:452) 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin$3.read(Skin.java:443) 
                     at com.badlogic.gdx.utils.Json.readValue(Json.java:884) 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:408) 
                     at com.badlogic.gdx.utils.Json.readValue(Json.java:852) 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.readNamedObjects(Skin.java:429) 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:418) 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:414) 
                     at com.badlogic.gdx.utils.Json.readValue(Json.java:884) 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:408) 
                     at com.badlogic.gdx.utils.Json.fromJson(Json.java:692) 
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:95)  
                     at com.badlogic.gdx.scenes.scene2d.ui.Skin.<init>(Skin.java:74)  
                     at com.mygdx.gdxhouse.GDXHouse.create(GDXHouse.java:20)  
                     at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:290)  
                     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1505)  
                     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)  
+0

這可能是由於.json文件中的語法錯誤引起的。將整個錯誤堆棧添加到您的問題中,以便更容易地看到問題所在。 – asherbar

+0

感謝liga。我已添加相應的文件。 –

回答

1

Font file not found: myfont.fnt

的字體被稱爲myFont.fnt。由於文件系統區分大小寫,因此您需要更改皮膚指向myFont.fnt或將文件名更改爲myfont.fnt

+0

非常感謝。這是問題所在。我還必須添加uiskin.atlas文件才能使其工作。 –

0

你。 json缺少引號。例如,

錯誤: com.badlogic.gdx.graphics.g2d.BitmapFont:{默認字體:{文件:myFont.fnt}},

正確: 「com.badlogic .gdx.graphics.g2d.BitmapFont「:{ 」默認字體「:{ 」文件「: 」myFont.fnt「}},

此外,TextButtonStyle子句中你有一個額外的逗號:

錯誤: 默認:{下:默認輪,向下,向上:默認輪,字體:默認字體},

正確: 「默認」:{「下」:「默認輪下」, 「上」: 「默認輪」, 「字體」: 「默認字體」}

+0

感謝您的回答。我試過添加引號,但仍然遇到同樣的錯誤。此外,在libgdx庫的文檔中,皮膚文件的示例沒有引號,所以我不確定是否需要添加引號:https://github.com/libgdx/libgdx/wiki/Skin –

+0

@PabloEstrada I發現另一個語法錯誤。請看我更新的答案。 – asherbar

相關問題