我一直在尝试将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>
答案 0 :(得分:1)
libgdx的0.9.9版本已过时,取决于RoboVM 0.0.6。您正在使用RoboVM Maven插件的0.0.9.1版本,这意味着您还必须使用robovm-rt.jar
和robovm-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一起正常工作。