LibGdx和Gwt:没有可用于类型的源代码

时间:2013-04-14 21:34:05

标签: android gwt inheritance project libgdx

我正在尝试启动我的Html项目,但我遇到了一些问题。桌面和Android项目运作良好。问题是我有一个其他项目,我用作未导入的库或其他东西。

[ERROR] [com.mobilecostudios.walkingskeleton.GwtDefinition] - Errors in 'file:/C:/Users/chelo/Documents/mobilecostudios-libgdx/trunk/walkingskeleton/WalkingSkeleton/src/com/mobilecostudios/walkingskeleton/GameLoop.java'
[ERROR] [com.mobilecostudios.walkingskeleton.GwtDefinition] - Line 21: No source code is available for type com.mobilecostudios.gamelibrary.Domain.BaseSprite; did you forget to inherit a required module?

我的项目层次结构是:

  • GameDevLibrary
  • WalkingSkeleton
  • WalkingSkeleton-HTML

我的gwt.xml是:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit trunk//EN" "http://google-web-toolkit.googlecode.com/svn/trunk/distro-source/core/src/gwt-module.dtd">
<module>
    <inherits name='com.badlogic.gdx.backends.gdx_backends_gwt' />
    <inherits name='GameLoop' />
    <entry-point class='com.mobilecostudios.walkingskeleton.client.GwtLauncher' />
    <set-configuration-property name="gdx.assetpath" value="../WalkingSkeleton-android/assets" />
</module>

我已经将proyect添加到构建路径中了。 我还缺少什么?

构建路径 enter image description here

2 个答案:

答案 0 :(得分:6)

您必须确保还将项目的源代码添加到路径中。将在客户端使用的任何GWT Java模块都需要提供其源代码。

在你的情况下,

<inherits name='GameLoop' />

应该是:

<inherits name='com.mobilecostudios.walkingskeleton.GameLoop' />

此外,com.mobilecostudios.gamelibrary.Domain.BaseSprite来自哪里?如果它在客户端使用,则需要将其添加到模块.gwt.xml文件中。应该是这样的:

<inherits name='com.mobilecostudios.gamelibrary.GameLibrary' />

上面,我假设GameLibrary.gwt.xml是包含com.mobilecostudios.gamelibrary.Domain.BaseSprite的项目的GWT模块XML文件。

基本上,当您想在客户端的项目中使用外部GWT模块时,需要将源和二进制文件添加到构建路径中,然后还需要添加{{1您的项目的<inherits name='...'>文件。

答案 1 :(得分:4)

对于具有多个包的项目,您必须为您正在使用的每个包添加.gwt.xml:
add an xml for every package

如上图所示,我为controller objects.gwt.xml添加了controller.gwt.xml用于对象等等......在这些.gwt.xml文件中你必须写这样的东西:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit trunk//EN" "http://google-web-toolkit.googlecode.com/svn/trunk/distro-source/core/src/gwt-module.dtd">
<module>
    <source path="com/me/controller" />
</module>

例如这是我的controller.gwt.xml然后将继承标记添加到您的GwtDefinition.gwt.xml文件中,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit trunk//EN" "http://google-web-toolkit.googlecode.com/svn/trunk/distro-source/core/src/gwt-module.dtd">
<module>
    <inherits name='com.badlogic.gdx.backends.gdx_backends_gwt' />
    <inherits name='MyGdxGame' />
    <inherits name='objects' />
    <inherits name='settings' />
    <inherits name='controller' />
    <entry-point class='com.me.mygdxgame.client.GwtLauncher' />
    <set-configuration-property name="gdx.assetpath" value="../cannongame-android/assets" />
</module>