libGDX游戏在本地主机上符合superDev:8080仅显示一个按钮

问题描述

我无法使用gradlew html:superDev在浏览器中获取libGDX游戏

在我的IDE(Inteliji)内的终端上执行命令gradlew html:superDev后,我得到响应:代码服务器已准备就绪,位于http://127.0.0.1:9876/

我导航到该站点,复制书签,并且当我尝试使用网站http://localhost:8080/index.html玩游戏时,仅显示一个灰色的重新加载按钮!

当我单击按钮时,我得到一个 compile 选项,该选项什么都不做。

编译后,在终端中向上滚动,我看到了很多 X can't be instantiated. Constructors not generated

not emitting code for accessing field mask in class 'com.badlogic.x.x.x' as its of type long which 
can't be used with JSNI
 

(以及更多) 我真的不确定这些是否与问题有关。

我已经在其他站点搜索了这个问题,但答案要么不完全是我的问题,要么太含糊/不愿举个例子。

出什么问题了?另外,有没有办法查看日志以查看出了什么问题?

编辑:

我已经看过游戏的控制台,看到以下错误

Uncaught TypeError: $wnd.soundManager is not a constructor
    at kB_g$ (SoundManager.java:75)
    at VZl_g$.ol_g$ [as onModuleLoad_0_g$] (GwtApplication.java:144)
    at Array.YNi_g$ (max_00046worldofsquares_00046GdxDeFinitionSuperdev__EntryMethodHolder.java:3)
    at initializeModules_0_g$ (ModuleUtils.java:44)
    at iZg_g$ (Impl.java:309)
    at lZg_g$ (Impl.java:368)
    at Impl.java:78
    at qNi_g$ (ModuleUtils.java:55)
    at TileType.java:3

当我单击“ SoundManager.java.75”时,它给了我这个委托人:

public static native void init (String moduleBaseURL,int flashVersion,boolean preferFlash,SoundManagerCallback callback) /*-{
        $wnd.soundManager = new $wnd.soundManager(); **< ERROR IS HERE**
        $wnd.soundManager.audioFormats.mp3.required = false;
        $wnd.soundManager.setup({
            url: moduleBaseURL,flashVersion: flashVersion,preferFlash: preferFlash,onready: function() { 
                callback.@com.badlogic.gdx.backends.gwt.soundmanager2.soundManager.soundManagerCallback::onready()();
            },ontimeout: function(status) {
                callback.@com.badlogic.gdx.backends.gwt.soundmanager2.soundManager.soundManagerCallback::ontimeout(Ljava/lang/String;Ljava/lang/String;)(status.success,(typeof status.error === 'undefined') ? '' : status.error.type);
            }
                    
        });
        $wnd.soundManager.beginDelayedInit();
    }-*/;

}

这很奇怪,因为我的游戏甚至没有声音。

解决方法

该问题与最新的安装应用程序为libGDX 1.9.12的快照版本生成模板文件有关,但是您使用的是较旧的libGDX。

两种解决方法:

  • 使用libGDX 1.9.12-SNAPSHOT

奖金快速修复:停用HTML配置中的音频。

,

在1.9.11版中,您可以通过禁用音频进行临时旁路。

将html模块中的文件HtmlLauncher.java编辑为:

public class HtmlLauncher extends GwtApplication {
    //some stuff
    @Override
    public GwtApplicationConfiguration getConfig () {
        GwtApplicationConfiguration configuration;
        configuration = new GwtApplicationConfiguration(480,320);
        configuration.disableAudio = true;
        return configuration;
    }
    //some stuff
}