ios - 无法使用 gradle 在 iPhone 模拟器中启动 libgdx ios/robovm 构建

标签 ios gradle libgdx gradlew robovm

我正在尝试使用 gradle 在 iPhone 模拟器上运行一个基本的 Hello World libgdx 应用程序。我是 gradle 和 robovm 的新手。

首先,我应该注意到,我能够成功构建并运行示例应用程序 https://github.com/jtakakura/robovm-sample-ios-app使用命令:

./gradlew build launchIPhoneSimulator

只是作为一个小消遣,我很好奇为什么

./gradlew launchIPhoneSimulator

失败。显然“构建”需要明确。

wintermute:robovm-sample-ios-app matt$ ./gradlew launchIPhoneSimulator
:launchIPhoneSimulator
Classpath entry /Users/matt/code/robovm-sample-ios-app/build/classes/main does not exist
:launchIPhoneSimulator FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':launchIPhoneSimulator'.
> Main class org.robovm.sample.ios.RoboVMSampleIOSApp not found

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 7.115 secs

我本以为 launchIPhoneSimulator 任务将依赖于构建任务,并且调用 lanuchIPhoneSimulator 会隐式调用构建。这是 gradle-robovm-plugin ( https://github.com/jtakakura/gradle-robovm-plugin ) 中的错误还是我对 gradle 缺少什么?

好的,抱歉,回到我的主要问题:

我使用 Gdx-setup ( https://github.com/libgdx/libgdx/tree/master/extensions/gdx-setup ) 提供的命令行工具生成了一个 libgdx 项目,参数如下:

--dir/Users/matt/code/test --name test --package com.foo.bar --mainClass FooTest

我把生成的项目放到了 github 上,这样你就可以轻松地克隆它:

git clone https://github.com/mattwalters/libgdx-test libgdx-test

那我就跑

./gradlew build

构建所有子项目。但我无法通过 ios 构建在模拟器上运行

./gradlew launchIPhoneSimulator

我遇到了与上面类似的错误:

wintermute:test matt$ ./gradlew ios:launchIPhoneSimulator
:ios:launchIPhoneSimulator
Classpath entry /Users/matt/code/test/ios/build/classes/main does not exist
:ios:launchIPhoneSimulator FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':ios:launchIPhoneSimulator'.
> Main class com.foo.bar.IOSLauncher not found

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 12.759 secs

我仔细检查了主类的实际名称和声明为 gradle 的 mainClass 之间没有拼写错误。而且ios/build中确实没有classes目录,但我不知道为什么。

有人可以帮我解释一下吗?预先非常感谢。

最佳答案

更新 2014-01-24: 至少有一位其他用户已验证它现在可以正常工作,因此如果您仍然遇到问题,请确保重试。

更新 2014-01-23: 我最近检查了 libgdx gradle 支持的一些错误修复,这些错误修复已合并到每日构建中。假设您使用日报,它们应该会在 24 小时内出现。最后,新的错误修复使得“./gradlew ios:assemble launchIPhoneSimulator”在使用 GdxSetup 类创建新项目后开箱即用。

原始回复如下:

首先,确保您使用的 gradle-robovm-plugin 版本至少为 0.0.2。其次,尝试使用此处的插件构建示例项目:

https://github.com/jtakakura/robovm-sample-ios-app

该插件的作者很友善地根据我的要求制作了这个。我已经用示例测试了该插件,它运行顺利。它已在此处的一个已解决问题中进行了讨论和解决:

https://github.com/jtakakura/gradle-robovm-plugin/issues/3

还值得注意的是,在最近的 libgdx 版本中,用于生成 libgdx 应用程序模板的命令行工具已经使用了该插件,因此您应该准备好开始使用,而无需自己下载和/或弄乱这些东西(除了获得libdx 并运行命令行 util 来生成模板项目)。

如果您已经有一个需要调整的项目,请仔细查看示例作者提供的 robovm-sample-ios-app 示例中的 build.gradle 文件。它向您展示了构建 robovm 所需的条件。

关于ios - 无法使用 gradle 在 iPhone 模拟器中启动 libgdx ios/robovm 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21267369/

相关文章:

box2d - 如何生成纹理以适应形状?

ios - 按钮操作后 TableView 未更新

ios - RestKit 与主键的关系映射

ios - 从钥匙串(keychain)中检索 SecKey

kotlin - 将 Gradle 构建升级到 Kotlin 1.7.0 后为 "Unresolved reference: sourceCompatibility"

java - 从组中删除和添加参与者 - libgdx

ios - 作为子项目添加的静态库与作为目标添加的静态库

java - 尝试运行 Sagan spring.io 项目 java.lang.IllegalAccessError 时出错

java - Gradle 禁用所有增量编译和并行构建

java - Libgdx 无法确定 Java 版本 11.0.1