【问题标题】:libGDX RoboVM fork iOS build errorlibGDX RoboVM fork iOS 构建错误
【发布时间】:2017-06-03 16:09:17
【问题描述】:

当我尝试运行 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/

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

【问题讨论】:

  • Abhishek 的回答已经说明了如何使用 RoboVM 解决问题。但是手动构建 RoboVM,我认为这不是一件容易的事。在此期间尝试使用 MultiOS 引擎 (MOE) 而不是 RoboVM。

标签: ios android-studio libgdx robovm


【解决方案1】:

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

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

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

【讨论】:

【解决方案2】:

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

要进行此设置,您需要将 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 功能。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 2015-11-22
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多