0

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

[错误] 无法在项目 Main 上执行目标 org.robovm:robovm-maven-plugin:0.0.9.1:iphone-sim (iphone-sim):执行目标 org.robovm:robovm-maven-plugin:0.0 的 iphone-sim .9.1:iphone-sim failed: No @Marshaler found for parameter 1 of @Callback method -> [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>
4

1 回答 1

1

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

最好的解决方案是获取更新版本的 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 一起正常工作。

于 2014-02-17T08:07:15.180 回答