2017-02-10 6 views
0

libGDXプロジェクトをHTMLにデプロイする際にいくつか問題があります。私は基本的なGUIとフォントを読み込むskin.jsonファイルを持っています。それはAndroidとデスクトップでは完璧に動作しますが、HTMLでは動作しません。ここで [LibGDX] [GWT] HTMLのファイルskin.jsonを読み込み中にエラーが発生しました[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のURIがデフォルトですが、私は持っている

<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" /> 

libGDX Wikiにarcording反映しようとしているクラスを指定している私の* .gwt.xmlファイルで

他の人に変更しても、同じエラーが表示されます。 (私は十分な評判がないので、リンクを投稿できません)

私はプロジェクトをgradlew.bat html:distでコンパイルして、/ build/distにいくつかのファイルを生成しました。

私はそれを試してみたことがありますが、多分もっと覚えていますが、今は覚えていません。私はこの日か2日か3日かかっています。 libGDXでHTMLにデプロイするのは私の夢の時です。ここに私の環境は次のとおりです。

  • IDE:Androidのメーカー2.2.3
  • libGDXバージョン:1.9.5
  • Gradleのバージョン:2.2.3
  • GWTバージョン:2.8.0
  • JDK: 1.8.0

英語は私の主な言語ではありませんので、いくつかのタイプミスがある場合は、ごめんなさい。

答えて

0

.jsonファイルで参照されるAssetManagerにBitmapFontを配置します。

アセットマネージャでfinishLoadingを使用します。 BitmapFontをAssetManagerから取得します。

BitmapFont x= manager.get(".....", BitmapFont.class); 

のObjectMap

ObjectMap<String, Object> font_map = new ObjectMap<String, Object>(); 
font_map.put("nameOfFont", x); 

使用SkinLoaderにフォントやパラメータとして、あなたの依存関係を渡し入れ。

manager.load(skinPath, Skin.class, new SkinLoader.SkinParameter(skinAtlas, font_map)); 
0

@AbhishekAryanはい私もそれを試して失敗します。とにかく応答に感謝します。

私はBitmapFontを読み込む方法を変えずにテストを続け、常にエラーで失敗します。そして、おそらくlibGDXのエラーだったかもしれないと思っていました。実際、libGDXを1.9.6-SNAPSHOTにアップデートしました。問題は解決しました。私はuiskin.jsonからBitmapFontを完全にロードしました。

+0

解決策が見つかった場合は、 1.9.5バージョンの問題を見つけ、githubに関する問題を作成する方が良いでしょう。 – Aryan

関連する問題