У меня возникли проблемы с развертыванием проекта libGDX в HTML. У меня есть файл skin.json для загрузки основных графических интерфейсов и шрифтов. Он отлично работает на Android и Desktop, но в HTML он этого не делает. Вот StackTrace:[LibGDX] [GWT] Ошибка чтения файла skin.json в HTML [SerializationException]
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. И та же ошибка. Поэтому его браузер не связан. Игра работает на сервере 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 файлов я определили класс, которые собираются быть отражены arcording в 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 по умолчанию один, но у меня есть изменить на другие и по-прежнему получить ту же ошибку. (Не могу опубликовать ссылки, потому что у меня недостаточно репутации)
Я скомпилировал проект с помощью gradlew.bat html:dist
, он сгенерировал некоторые файлы в/build/dist, и эти файлы являются тем, который я использую для обслуживания игры.
Я думаю, что все, что я попробовал, может быть, еще несколько вещей, но не помню сейчас. У меня есть 2 дня в этом или 3 дня. Это мое время для развертывания в HTML с помощью libGDX. Вот моя среда:
- IDE: Android Studio 2.2.3
- libGDX Версия: 1.9.5
- Gradle Версия: 2.2.3
- GWT Версия: 2.8.0
- JDK: 1.8.0
Английский не является моим основным языком, поэтому, если есть какие-то опечатки, извините за это.
хорошее, если вы найдете решение. Лучше найти проблему с версией 1.9.5 и создать проблему для github. – Aryan