libGDX RoboVM分叉iOS构建错误

时间:2017-06-03 16:09:17

标签: ios android-studio libgdx robovm

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

我可以成功同步gradle,但错误消息保持不变。有人建议使用与RoboVM fork版本相同的android studio版本,所以我这样做了。现在我为它们使用版本2.3.0,但这样做并没有解决。要设置RoboVM,我按照RoboVM fork网站上的说明进行操作:http://robovm.mobidevelop.com/

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

2 个答案:

答案 0 :(得分:0)

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

尝试使用具有修复功能的MobiDevelop RoboVM 2.3.2-SNAPSHOT版本。

master分支中存在pull request此问题,您可以查看。

答案 1 :(得分:0)

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

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

Toplevel
    android
        androidApp
        lib
    ios
        iosApp

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

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的自己的窗口中打开每个项目,您现在可以独立构建和运行它们。您可以使用

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

用于android项目和

gradlew iosApp:assemble

用于ios版本。 我目前在AS 3中遇到的唯一问题是在android项目的dexing阶段偶尔出现空指针错误。从命令行构建使得它会消失一段时间。您当然可以使用没有此问题的AS 2.3(但不支持Android中的lambda等Java 8功能。)