2013-04-14 63 views
7

我試圖啓動我的Html項目,但我面臨一些問題。桌面和Android項目運行良好。問題是我有一個其他項目用作一個不被導入的庫。LibGdx和Gwt:沒有源代碼可用於類型

[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> 

我已經將該工程添加到構建路徑中了。 我還缺少什麼?

構建路徑 enter image description here

回答

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模塊時,需要將源代碼和二進制文件添加到您的構建路徑中,並且還需要將<inherits name='...'>添加到您的項目中您的項目的.gwt.xml文件。

+0

我應該在哪裏添加路徑? –

+0

我更新了我的答案。我發現很難確切地說出發生了什麼。你想要導入哪個項目? GWT模塊中導入了哪些「com.mobilecostudios.gamelibrary.Domain.BaseSprite」? – enrybo

3

對於擁有一個以上的包,你必須添加一個.gwt.xml爲每包項目所使用:
add an xml for every package

,你可以在上面的圖片中看到我添加controller.gwt.xml對於控制器objects.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> 
相關問題