【问题标题】:How to change version of RoboVM compiler to 2.3.10-SNAPSHOT in Gluon Mobile如何在 Gluon Mobile 中将 RoboVM 编译器的版本更改为 2.3.10-SNAPSHOT
【发布时间】:2020-01-21 20:54:11
【问题描述】:

我在 iPadOS 13.3 上运行我的 JavaFX/Gluon 移动应用时遇到问题实际上类似的问题在这里描述:Gluon sample application failing on ios devices 我确定问题是由 RoboVM 引起的,应该在版本 2.3.10 中修复-快照

如何更改 Gluon 使用的 RoboVM 版本?在 Gluon 文档中提到了 ios gradle 扩展属性 robovmVersion。此属性可以设置为版本 robovmVersion ='2.3.5-ios12' 但不能设置为 2.3.10。原因是bintray上没有2.3.10版本。

有没有办法强制 Gluon Mobile 使用 RoboVM 2.3.10?

【问题讨论】:

标签: gluon gluon-mobile


【解决方案1】:

在 JavaFXPorts 存储库更新之前,这是一个临时解决方案。 iOS 13.3JavaFX 原生库 似乎存在问题,这就是即使使用最新的 2.3.10-SNAPSHOT 应用程序也会崩溃的原因。

昨天,Demyan Kimitsa 发现了中断代码行,他建议从以下原生类中删除 assert

GlassApplication.m:635

assert(pthread_key_create(&GlassThreadDataKey, NULL) == 0);

变成

thread_key_create(&GlassThreadDataKey, NULL) == 0;

我在本机库中使用上述更改创建了一个构建,并使用 RoboVM 2.3.10-SNAPSHOT 一切都再次正常运行,即使在最新的 iOS 中也是如此。

现在问题已确定,我认为发布新的 JavaFXPorts 修复程序只是时间问题。

如果您迫不及待,可以从 here 下载带有新二进制文件的 HelloWorld 示例。调整好 build.gradle 中的参数,就可以开始了。

【讨论】:

  • 伟大的发现!为了完整的参考,GlassApplication.m 文件位于JavaFXPorts repository。如果你删除assert,你也可以删除== 0
  • @JoséPereda 也许你应该检查资产的其他地方,以确保内部没有初始化,因为我没有检查整个源。此外,最好将 pthread_key_create 调用的结果存储到本地 var 并在此 var 周围保持断言。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-21
  • 1970-01-01
  • 2019-02-09
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
  • 2016-01-22
相关资源
最近更新 更多