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
}