I am trying to port a libgdx android app to iOS and am testing the sample libgdx apps to get a feel for how to connect the dots. I was able to get the IOSDemo app to successfully run on the simulator, but all of the sample libgdx apps fail with the error:

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

The console output is:

    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)

Followed by the error dialog. I attempted to follow the directions for setting up the environment, but I am puzzled why the IOSDemo successfully compiles the class and all of the libgdx apps cannot. Here is the additional information from the error log.

Exception Stack Trace:

    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)

Session Data:

    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

My setup: Mac OS X Mavericks, Eclipse 4.3, Xcode 5.0.1, RoboVM 0.0.7, libgdx @ origin/HEAD.

I have tried several branches of libgdx and several of the RoboVM nightlies from 0.0.8 and tried back to 0.0.6. I assume its a configuration setting, but I am stuck. I appreciate any help finding a solution.

有帮助吗?

解决方案

The Java to native framework built into RoboVM, Bro, is currently undergoing some major refactorings. The problem you're experiencing is probably due to using a RoboVM nightly version of the libraries and an incompatible version of the RoboVM Eclipse plugin. Make sure you use the same version of the RoboVM libraries as the version of the Eclipse plugin, e.g. 0.0.7.

If you want to use the latest nightly libraries (not recommended) you should also use a nightly build of the Eclipse plugin. Use the update site http://download.robovm.org/nightlies/eclipse/ in Eclipse to get the latest nightly version.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top