libGDX RoboVM fork iOS 构建错误

libGDX RoboVM fork iOS build error

当我尝试 运行 我的 libGDX 游戏的 iOS 版本时,我总是遇到同样的奇怪错误。该错误仅显示此消息:Error:com.android.tools.idea.gradle.util.Projects.lastGradleSyncFailed(Lcom/intellij/openapi/project/Project;)Z

我可以成功同步 gradle,但错误消息保持不变。建议使用与 RoboVM 分支版本相同的 android studio 版本,所以我这样做了。现在我对它们都使用 2.3.0 版,但这样做并没有解决问题。为了设置 RoboVM,我遵循了 RoboVM 分支网站上的说明:http://robovm.mobidevelop.com/

有人知道如何解决这个问题吗?

RoboVM 与 Android Studio/IDEA 版本 2.3.0 有一些不兼容的问题。

尝试使用 MobiDevelop RoboVM 2.3.2-SNAPSHOT 修复了相同问题的版本。

这个问题在master分支中有一个pull request,你可以查一下。

您可以使用高于 2.2 的 Android Studio(我使用的是 AS 3.0 Canary 3,它支持 Java 8 个功能)解决此问题,方法是将您的项目拆分为两个单独的项目,一个用于 Android,一个用于 iOS,共享一个导入的模块,其中包含所有通用代码。

要进行此设置,您需要将 iOS 应用程序模块复制到一个单独的文件夹中。我使用这个结构:

Toplevel
    android
        androidApp
        lib
    ios
        iosApp

每个项目都应该有一个 gradle.build、gradlew 脚本和 gradle 文件夹的副本 - 最简单的方法是复制树然后删除 androidApp来自一个,ios应用来自另一个。

android 和 ios 文件夹都包含一个顶级 build.gradle 和一个 settings.gradle 文件。公共代码在lib目录下,所以ios文件夹需要这样的settings.gradle

include ':iosApp', ':lib'
project(':lib').projectDir = new File('../android/lib')

而 android 项目 settings.gradle 看起来像这样:

include ':lib', ':androidApp'

在 AS 中单独打开每个项目 window,您现在可以独立构建和 运行 它们。您可以使用

从命令行进行测试(通常更容易调试 gradle 问题)
gradlew androidApp:assembleDebug

android 项目和

gradlew iosApp:assemble

为 ios 版本。 我目前在 AS 3 上遇到的唯一问题是在 android 项目的 dexing 阶段偶尔会出现空指针错误。从命令行构建可以暂时解决这个问题。您当然可以使用没有此问题的 AS 2.3(但不支持 Java 8 个功能,例如 Android 中的 lambdas。)