我有一个可以工作的跨平台应用程序,在RoboVM下总是运行的很好。我开始将应用程序的图形后端移到LibGDX。在LWJGL下一切都很好,但我无法让LibGDX在RoboVM上工作。
我真的不想安装和学习另一个构建工具或依赖关系管理的东西,所以我想让这个工作的不用使用Gradle。
我到目前为止所做的事情如下:
gdx.jar、gdx-backend-robovm.jar和gdx-natives.jarlibs项目根目录中创建了一个名为RoboVM的文件夹。iOS文件夹从libgdx文件夹复制到包含以下文件的libs中:
libgdx.a和libObjectAL.a<libs>、<frameworks>和<forceLinkClasses>部分中添加了一个robovm.xml,它现在看起来如下所示:${app.executable} ${app.mainclass} ios thumbv7资源真libs/ ios /libgdx.a libs/ios/libObjectAL.a UIKit OpenGLES QuartzCore CoreGraphics OpenAL AudioToolbox AVFoundation com.badlogix.gdx.工况.scene2d.ui.*ios Info.plist.xml
这是一个非常接近的目标,getApplicationListener()在我的LWGJL应用程序中返回了相同的对象。
这一对象中的create()方法从System.out.println("Hello?");开始。
当我运行应用程序,它启动(启动图像和所有),并开始播放一些声音效果(不使用LibGDX!)但只显示一个黑色的屏幕。上面印着“应该准备好.”但它没有印上“喂?”。因此,ApplicationListener被创建得很好,IOSApplication被创建得很好,但是侦听器的create()方法从未被调用过。和往常一样,没有任何有用的错误消息.
我是不是遗漏了什么?
我非常肯定.a文件已经包含在构建中,因为一旦我将<libs>部分添加到robovm.xml中,就会出现大量的构建错误,这些错误在我添加<frameworks>部分时就消失了。我还需要担心其他的出口环境吗?是否有办法至少获得某种错误或日志消息?
更新
如果我在模拟器上运行它,我也会得到一个黑屏幕。但是,如果我单击黑色屏幕,就会收到以下错误消息:
unexpected nil window in _UIApplicationHandleEventFromQueueEvent, _windowServerHitTestWindow: <UIClassicWindow: 0x7fafa27175b0; frame = (0 0; 375 667); userInteractionEnabled = NO; gestureRecognizers = <NSArray: 0x7fafa2514d70>; layer = <UIWindowLayer: 0x7fafa2718060>>我将LibGDX测试项目导入到我的Eclipse安装程序中,这些项目运行良好.
发布于 2015-08-07 06:39:38
太蠢了:
主类必须扩展IOSApplication.Delegate而不是UIApplicationDelegateAdapter。
浪费了6个小时..。这就是为什么我讨厌使用外部库而不是尽可能接近金属的编码(因此我的先前的问题):对于编写库的人来说,这种琐碎的事情会立即变成自我理解、自动化和遗忘。因此:没有文档,没有有用的错误信息,没有其他的制衡。搜索一下"libgdx IOSApplication.Delegate“,看看是否能找到一个页面,上面写着这是我们需要做的。它出现的唯一地方是在一些示例代码中,您的注意力立即跳到方法的内容上,而不是从眼角看上去与往常一样的样板。但我会停在这里..。无论如何,只有第二句与这个答案有关.
但是,嘿,我们终于详细描述了如何在不使用Gradle的情况下将LibGDX添加到RoboVM中的现有项目中。
https://stackoverflow.com/questions/31866024
复制相似问题