【发布时间】:2017-06-29 03:52:10
【问题描述】:
我在将 libGDX 项目部署到 HTML 时遇到了一些问题。我有一个 skin.json 文件来加载基本的 GUI 和字体。它在 Android 和桌面上完美运行,但在 HTML 中却不行。这是堆栈跟踪:
Uncaught Error: java.lang.RuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.SerializationException: Error reading file: data/skins/logo_and_font/logo_and_font.json
at f_b.V$b [as jQ] (html-0.js:7370)
at f_b.Y$b [as lQ] (html-0.js:7370)
at f_b.b_b (html-0.js:5252)
at f_b (html-0.js:1161)
at Be (html-0.js:6955)
at Ge (html-0.js:6136)
at di (html-0.js:6583)
at wh.xh [as Oc] (html-0.js:7361)
at HTMLImageElement.eval (html-0.js:5881)
这是我试图加载的 .json 文件:
{
"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.graphics.g2d.BitmapFont":{
"default-font":{
"file":"basic_font.fnt"
}
},
"com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle":{
"default":{
"font":"default-font",
"fontColor":"white"
}
}
}
如果我删除 BitmatFont 和 LabelStyle 块代码,它将加载而不会出现任何错误
"com.badlogic.gdx.graphics.g2d.BitmapFont":{
"default-font":{
"file":"basic_font.fnt"
}
},
"com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle":{
"default":{
"font":"default-font",
"fontColor":"white"
}
}
我已经在 Opera、Google Chrome、Firefox 和 Internet Explorer 中对其进行了测试。和同样的错误。所以它与浏览器无关。该游戏正在使用 express 的 NodeJs 服务器中提供服务,但我也尝试使用 Apache (XAMPP) 和同样的问题,所以不要认为与服务器相关。我也尝试过 html:superDev 和同样的问题。我已经从 json 文件中删除了引号和同样的问题。
我使用资产管理器加载 .json 文件,这里是我如何加载它的代码。我以这种方式加载它,因为我只是加载创建加载屏幕所需的基本内容,然后加载其他资产。
this.manager = new AssetManager();
this.assets = new ObjectMap<String, String>();
this.assets.put("logo_and_font_skin", "data/skins/logo_and_font/logo_and_font.json");
this.manager.load(this.assets.get("logo_and_font_skin"), Skin.class);
this.manager.finishLoading();
如果我直接用Gdx.files.internal("data/skins/logo_and_font/logo_and_font.json"); 加载它,我会得到同样的错误。
在我的 *.gwt.xml 文件中,我已经指定了要反映到 libGDX Wiki 的类
<extend-configuration-property name="gdx.reflect.include" value="com.badlogic.gdx.graphics.g2d.BitmapFont"/>
<extend-configuration-property name="gdx.reflect.include" value="com.badlogic.gdx.scenes.scene2d.ui.Label" />
*.gwt.xml 的 URI 是默认的,但我已经更改为其他的,但仍然得到相同的错误。 (无法发布链接,因为我没有足够的声誉)
我使用 gradlew.bat html:dist 编译项目,它在 /build/dist 中生成了一些文件,这些文件是我用来为游戏提供服务的文件。
我想这就是我所尝试的全部,也许还有一些东西,但现在不记得了。我在这个或 3 天有 2 天。这是我第一次使用 libGDX 部署到 HTML。这是我的环境:
- IDE:Android Studio 2.2.3
- libGDX 版本:1.9.5
- Gradle 版本:2.2.3
- GWT 版本:2.8.0
- JDK:1.8.0
英语不是我的主要语言,所以如果有错别字,请见谅。
【问题讨论】:
标签: java json node.js gwt libgdx