LibGDX和RoboVM Maven插件问题

时间:2014-02-15 17:08:46

标签: java maven libgdx robovm

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

    [错误]无法执行目标org.robovm:robovm-maven-plugin:0.0.9.1:iphone-sim(iphone-sim)项目主要:执行目标org.robovm的iphone-sim:robovm-maven-plugin:0.0 .9.1:iphone-sim失败:没有为@Callback方法的参数1找到@Marshaler - > [帮助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 :(得分:1)

libgdx的0.9.9版本已过时,取决于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一起正常工作。