【问题标题】:Can't launch libgdx ios/robovm build in IPhone simulator with gradle无法在带有 gradle 的 iPhone 模拟器中启动 libgdx ios/robovm 构建
【发布时间】:2023-03-29 01:56:01
【问题描述】:

我正在尝试使用 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目录,但是不知道为什么。

谁能帮我解释一下这个问题?提前非常感谢。

【问题讨论】:

    标签: ios gradle libgdx gradlew robovm


    【解决方案1】:

    2014 年 1 月 24 日更新: 至少有其他用户已验证它现在可以正常工作,因此如果仍有问题,请确保重试。

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

    以下原文回复:

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

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

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

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

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

    如果你已经有需要适配的项目,请仔细查看示例作者的 robovm-sample-ios-app 示例中的 build.gradle 文件。它向您展示了进行 robovm 构建所需的条件。

    【讨论】:

    • 嗨马吕斯。谢谢回复。如原始问题所述,我能够构建 robovm-sample-ios-app。最新版本的 gdx-setup 包括 0.0.2 版的 gradle-robovm-plugin 也是如此。但它不会构建由 gdx-setup 生成的 ios 应用程序。我的感觉是,区别在于gdx模板的多项目结构。 gradle 在 iOS 项目中找不到主类..
    • 我刚刚重新测试并确认了这个错误。我正在与开发人员讨论它,看看我们是否可以解决它。应该很容易修复。
    【解决方案2】:

    尝试检查主 build.gradle 中的 roboVMVersion 和 robovm-gradle-plugin 是否指向最新的 robovm/plugin 版本。如果没有 - 尝试使用最新的。这对我有好几次帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-06
      • 2015-04-23
      • 2014-05-25
      • 2017-02-06
      • 2016-11-04
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      相关资源
      最近更新 更多