2014-02-15 58 views
0

我一直在试图将一个libGDX项目移植到iOS,并遇到了令人沮丧的错误。我正在使用RoboVM Maven Plugin,并尝试运行iphone模拟器时出现以下错误。问题与LibGDX和RoboVM Maven插件

无法执行目标org.robovm:robovm-maven-plugin:0.0.9.1:项目中的iphone-sim(iphone-sim)Main:执行iphone-sim目标org.robovm:robovm- maven-plugin:0.0.9.1:iphone-sim失败:找不到@Marshaler参数1的@Callback方法 - > [Help 1]

我对RoboVM的经验不多,所以我不知道错误是什么意味着,更不用说它为什么会发生。我环顾四周,似乎没有人在相同的背景下获得错误,所以我不知道该怎么做。

我的pom.xml看起来像这样。

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0  
    http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<artifactId>artifactid</artifactId> 
<name>name</name> 

<properties> 
    <mainClass>main</mainClass> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>com.badlogicgames.gdx</groupId> 
     <artifactId>gdx</artifactId> 
     <version>0.9.9</version> 
    </dependency> 

    <dependency> 
     <groupId>com.badlogicgames.gdx</groupId> 
     <artifactId>gdx-backend-robovm</artifactId> 
     <version>0.9.9</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.robovm</groupId> 
      <artifactId>robovm-maven-plugin</artifactId> 
      <version>0.0.9.1</version> 
      <configuration> 
       <config> 
        <mainClass>${mainClass}</mainClass> 
        <os>ios</os> 
        <arch>x86</arch> 
       </config> 
      </configuration> 
      <executions> 
       <execution> 
        <id>iphone-sim</id> 
        <phase>integration-test</phase> 
        <goals> 
         <goal>iphone-sim</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
</project> 

回答

1

0.9.9版本的libgdx已经过时,取决于RoboVM 0.0.6。您正在使用RoboVM Maven插件的0.0.9.1版本,这意味着您还必须使用robovm-rt.jarrobovm-cocoatouch.jar的RoboVM 0.0.9版本。

最好的解决方案是获得更新版本的libgdx,但我不认为在Maven Central中有一个可用。您可能必须从源代码自己构建libgdx Maven构件。

另一种可行的方法是排除由libgdx依赖关系拉入的RoboVM构件,然后为RoboVM 0.0.9添加依赖关系。事情是这样的:

<dependency> 
    <groupId>com.badlogicgames.gdx</groupId> 
    <artifactId>gdx-backend-robovm</artifactId> 
    <version>0.9.9</version> 
    <exclusions> 
    <exclusion> 
     <groupId>org.robovm</groupId> 
     <artifactId>robovm-rt</artifactId> 
    </exclusion> 
    <exclusion> 
     <groupId>org.robovm</groupId> 
     <artifactId>robovm-objc</artifactId> 
    </exclusion> 
    <exclusion> 
     <groupId>org.robovm</groupId> 
     <artifactId>robovm-cocoatouch</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

<dependency> 
    <groupId>org.robovm</groupId> 
    <artifactId>robovm-cocoatouch</artifactId> 
    <version>0.0.9</version> 
</dependency> 
<dependency> 
    <groupId>org.robovm</groupId> 
    <artifactId>robovm-objc</artifactId> 
    <version>0.0.9</version> 
</dependency> 
<dependency> 
    <groupId>org.robovm</groupId> 
    <artifactId>robovm-rt</artifactId> 
    <version>0.0.9</version> 
</dependency> 

我不知道是否0.9.9版本libgdx将与0.0.9版本RoboVM的正常工作。

+0

谢谢!我不知道libGDX已经转移到版本1.0.0,因为自从我开始使用库以来我一直在使用0.9.9。事实证明,1.0.0-SNAPSHOT在maven central中可用,并且使用它可以完全解决问题。 – kabb