首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有分级的RoboVM上设置RoboVM(仅获得黑色屏幕)

在没有分级的RoboVM上设置RoboVM(仅获得黑色屏幕)
EN

Stack Overflow用户
提问于 2015-08-06 21:21:14
回答 1查看 453关注 0票数 0

我有一个可以工作的跨平台应用程序,在RoboVM下总是运行的很好。我开始将应用程序的图形后端移到LibGDX。在LWJGL下一切都很好,但我无法让LibGDX在RoboVM上工作。

我真的不想安装和学习另一个构建工具或依赖关系管理的东西,所以我想让这个工作的不用使用Gradle。

我到目前为止所做的事情如下:

  • 从LibGDX下载了最新的释放目录版本(1.6.1)。
  • 将zip文件解压缩到我计算机上的某个目录中(不是在我的Eclipse项目中)。
  • 在Eclipse中创建了一个新的用户库,其中包含以下文件夹中的外部jars: gdx.jargdx-backend-robovm.jargdx-natives.jar
  • 将用户库添加到我的项目中。
  • 在我的libs项目根目录中创建了一个名为RoboVM的文件夹。
  • iOS文件夹从libgdx文件夹复制到包含以下文件的libs中: libgdx.alibObjectAL.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

  • 在我的主要方法中添加了以下代码: IOSApplicationConfiguration cfg =新IOSApplicationConfiguration();cfg.orientationLandscape = true;cfg.orientationPortrait = true;新IOSApplication(getApplicationListener(),cfg);System.out.println(“应该准备好.”);

这是一个非常接近的目标,getApplicationListener()在我的LWGJL应用程序中返回了相同的对象。

这一对象中的create()方法从System.out.println("Hello?");开始。

当我运行应用程序,它启动(启动图像和所有),并开始播放一些声音效果(不使用LibGDX!)但只显示一个黑色的屏幕。上面印着“应该准备好.”但它没有印上“喂?”。因此,ApplicationListener被创建得很好,IOSApplication被创建得很好,但是侦听器的create()方法从未被调用过。和往常一样,没有任何有用的错误消息.

我是不是遗漏了什么?

我非常肯定.a文件已经包含在构建中,因为一旦我将<libs>部分添加到robovm.xml中,就会出现大量的构建错误,这些错误在我添加<frameworks>部分时就消失了。我还需要担心其他的出口环境吗?是否有办法至少获得某种错误或日志消息?

更新

如果我在模拟器上运行它,我也会得到一个黑屏幕。但是,如果我单击黑色屏幕,就会收到以下错误消息:

代码语言:javascript
复制
unexpected nil window in _UIApplicationHandleEventFromQueueEvent, _windowServerHitTestWindow: <UIClassicWindow: 0x7fafa27175b0; frame = (0 0; 375 667); userInteractionEnabled = NO; gestureRecognizers = <NSArray: 0x7fafa2514d70>; layer = <UIWindowLayer: 0x7fafa2718060>>

我将LibGDX测试项目导入到我的Eclipse安装程序中,这些项目运行良好.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-07 06:39:38

太蠢了:

主类必须扩展IOSApplication.Delegate而不是UIApplicationDelegateAdapter

浪费了6个小时..。这就是为什么我讨厌使用外部库而不是尽可能接近金属的编码(因此我的先前的问题):对于编写库的人来说,这种琐碎的事情会立即变成自我理解、自动化和遗忘。因此:没有文档,没有有用的错误信息,没有其他的制衡。搜索一下"libgdx IOSApplication.Delegate“,看看是否能找到一个页面,上面写着这是我们需要做的。它出现的唯一地方是在一些示例代码中,您的注意力立即跳到方法的内容上,而不是从眼角看上去与往常一样的样板。但我会停在这里..。无论如何,只有第二句与这个答案有关.

但是,嘿,我们终于详细描述了如何在不使用Gradle的情况下将LibGDX添加到RoboVM中的现有项目中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31866024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档