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

Java libGDX游戏符合本地主机上的superDev:8080仅显示一个按钮,java,html,libgdx,Java,Html,Libgdx,我无法在浏览器中使用gradlew html:superDev 在IDE(Inteliji)中的终端上执行命令gradlew html:superDev后,我得到了响应:代码服务器在 我导航到该网站,复制书签,当我尝试使用该网站玩游戏时http://localhost:8080/index.html,仅显示灰色的重新加载按钮 当我点击按钮时,我会得到一个编译选项,它什么也不做 编译后,在终端上,向上滚动,我看到了很多 X无法实例化。未生成构造函数 及 (及更多) 我真的不确定这些是否与问题有关

我无法在浏览器中使用
gradlew html:superDev

在IDE(Inteliji)中的终端上执行命令
gradlew html:superDev
后,我得到了响应:代码服务器在

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

当我点击按钮时,我会得到一个编译选项,它什么也不做

编译后,在终端上,向上滚动,我看到了很多
X无法实例化。未生成构造函数

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

我在其他网站上搜索过这个问题,但答案要么不完全是我的问题所在,要么太模糊/没有给出一个例子

有什么问题?此外,是否有方法查看日志以查看出了什么问题

编辑:

我查看了游戏控制台,发现以下错误:

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();
    }-*/;

}
public静态本机void init(字符串moduleBaseURL、int flashVersion、boolean preferFlash、SoundManagerCallback回调)/*-{
$wnd.soundManager=新的$wnd.soundManager();***<此处有错误**
$wnd.soundManager.audioFormats.mp3.required=false;
$wnd.soundManager.setup({
url:moduleBaseURL,
flashVersion:flashVersion,
preferFlash:preferFlash,
onready:function(){
回调。@com.badlogic.gdx.backends.gwt.soundmanager2.SoundManager.SoundManagerCallback::onready();
},
ontimeout:功能(状态){
回调。@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

解决此问题的两种方法:

  • 使用libgdx1.9.12-SNAPSHOT

  • 通过从Github下载标签1.9.11中的内容来合并您的

额外快速修复:在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
}

你的游戏应该显示在灰色的重新加载按钮下面。否则,javascript控制台中会出现一些错误。(Chrome中的F12,控制台)@MrStahlfelge我查看了控制台,发现了一个关于“SoundManager”的错误,我还编辑了显示错误的问题。我将在哪里下载新快照?单击libgdx下载上的“下载”会给我快照吗?另外,我在哪里可以找到配置文件(它叫什么?)以及如何“禁用音频”?我通过在配置中禁用音频解决了我的问题
config.disableAudio=true可以在build.gradle文件中找到定义1.9.11,如果需要音频,可以将其更改为1.9.12-SNAPSHOT。
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
}