【问题标题】:Issue with LibGDX and RoboVM Maven PluginLibGDX 和 RoboVM Maven 插件的问题
【发布时间】:2014-02-15 17:08:45
【问题描述】:

我一直在尝试将 libGDX 项目移植到 iOS,但遇到了一个令人沮丧的错误。我正在使用RoboVM Maven Plugin,尝试运行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>

【问题讨论】:

    标签: java maven libgdx robovm


    【解决方案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 一起正常工作。

    【讨论】:

    • 谢谢!我不知道 libGDX 已经升级到 1.0.0 版,因为自从我开始使用该库以来我一直在使用 0.9.9。事实证明 1.0.0-SNAPSHOT 在 maven Central 中可用,使用它可以完全解决问题。
    猜你喜欢
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 2014-03-13
    • 2015-02-04
    • 2019-09-13
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多