2

我正在尝试将 libgdx android 应用程序移植到 iOS 并测试示例 libgdx 应用程序以了解如何连接这些点。我能够让 IOSDemo 应用程序在模拟器上成功运行,但是所有示例 libgdx 应用程序都失败并出现以下错误:

    An internal error occured during: "Launching cuboc-iosrobovm".
        Struct class must be final

控制台输出为:

    12/29/13 1:04:04 AM: [ INFO] Building executable    
    12/29/13 1:04:08 AM: [DEBUG] Compiling org.robovm.rt.bro.ptr.BytePtr$Ptr (ios x86)

随后是错误对话框。我试图按照设置环境的说明进行操作,但我很困惑为什么 IOSDemo 可以成功编译该类,而所有的 libgdx 应用程序都不能。以下是错误日志中的附加信息。

异常堆栈跟踪:

    java.lang.IllegalArgumentException: Struct class must be final
      at org.robovm.compiler.ClassCompiler.compile(ClassCompiler.java:514)
      at org.robovm.compiler.ClassCompiler.compile(ClassCompiler.java:279)
      at org.robovm.compiler.AppCompiler.compile(AppCompiler.java:198)
      at org.robovm.compiler.AppCompiler.compile(AppCompiler.java:216)
      at org.robovm.eclipse.internal.AppCompilerThread.run(AppCompilerThread.java:60)

会话数据:

    eclipse.buildId=4.3.0.M20130911-1000
    java.version=1.7.0_45
    java.vendor=Oracle Corporation
    BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
    Framework arguments:  -product org.eclipse.epp.package.standard.product 
      -keyring /Users/dev/.eclipse_keyring -showlocation
    Command-line arguments:  -os macosx -ws cocoa -arch x86_64 
      -product org.eclipse.epp.package.standard.product
      -data /Users/dev/Files/workspace/libgdx 
      -keyring /Users/dev/.eclipse_keyring -showlocation

我的设置:Mac OS X Mavericks、Eclipse 4.3、Xcode 5.0.1、RoboVM 0.0.7、libgdx @ origin/HEAD。

我从 0.0.8 尝试了 libgdx 的几个分支和几个 RoboVM nightlies,并尝试回到 0.0.6。我假设它是一个配置设置,但我被卡住了。我感谢任何帮助找到解决方案。

4

1 回答 1

3

RoboVM 内置的 Java 到原生框架 Bro,目前正在进行一些重大的重构。您遇到的问题可能是由于使用了 RoboVM nightly 版本的库和不兼容的 RoboVM Eclipse 插件版本。确保使用与 Eclipse 插件版本相同的 RoboVM 库版本,例如 0.0.7。

如果您想使用最新的夜间库(不推荐),您还应该使用 Eclipse 插件的夜间构建。使用 Eclipse 中的更新站点http://download.robovm.org/nightlies/eclipse/获取最新的夜间版本。

于 2013-12-29T15:57:56.860 回答