【问题标题】:JavaFX-11/macOS: DirectoryChooser crashes 'NSObjectNotAvailableException'JavaFX-11/macOS:DirectoryChooser 崩溃“NSObjectNotAvailableException”
【发布时间】:2020-05-16 08:01:05
【问题描述】:

我使用openjfx 模块开发了一个Java 应用程序。 我现在想使用DirectoryChooser 让用户选择几个文件作为输入(下面的代码)。每次我从 IDE 启动应用程序时,它都会崩溃,但出现以下异常。崩溃是指完全终止(不冻结)。

我还尝试了一些示例代码,例如 this,以确定我的实现是否有任何问题,但我发现的每个示例都给了我同样的问题。

我不确定这是否是一般问题/错误,因为我在 oracle 错误跟踪器中看到了旧错误,但它们都标记为已修复。

如果有人能提供一些帮助,我会很高兴。如果有的话,我什至会对避免DirectoryChooser 的解决方法感到满意。

复制步骤:

  • 使用来自here 的演示代码创建一个小型应用程序。
  • 运行应用程序
  • 尝试打开目录选择器

背景信息:

  • 操作系统:macOS 10.15.2 Catalina
  • IDE:intelliJ IDEA Ultimate 2019.3

例外

2020-01-30 17:18:31.288 java[49749:1319417] *** Terminating app due to uncaught exception 'NSObjectNotAvailableException', reason: 'GlassOpenPanel is not a supported subclass for sandboxing'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff364ea8ab __exceptionPreprocess + 250
    1   libobjc.A.dylib                     0x00007fff6c75b805 objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff364ea701 +[NSException raise:format:] + 189
    3   AppKit                              0x00007fff33d43aa9 +[NSSavePanel(Instantiation) _crunchyRawUnbonedPanel] + 368
    4   libglass.dylib                      0x00000001370a2ba6 Java_com_sun_glass_ui_mac_MacCommonDialogs__1showFolderChooser + 358
    5   ???                                 0x0000000117695950 0x0 + 4687747408
    6   ???                                 0x000000011768fa00 0x0 + 4687723008
)
libc++abi.dylib: terminating with uncaught exception of type NSException

解决方案

根据 mipa 的建议,增加 OpenJFX 版本号解决了这个问题。
目前,它似乎适用于来自MavenCentral的 OpenJFX 版本 14-ea+7 和 15-ea+1

【问题讨论】:

    标签: java macos javafx macos-catalina javafx-11


    【解决方案1】:
    1. 为什么要使用过时的 JavaFX 版本?当前版本是 13 和 14 即将推出。 EA 版本已经可用。您还可以将它们与 Java 11 一起使用。
    2. 我用 JavaFX 13 尝试了您提到的两个示例,它们都可以正常工作。这可能是因为某个错误已得到修复,或者是因为我仍在使用 MacOS 10.14.6 Mojave。

    试试 JavaFX 13,然后报告。

    【讨论】:

    • 感谢您的建议。我开始使用 OpenJFX 13 向上进行测试,似乎从版本 14-ea+7 (15-ea+1) 开始问题已得到解决,也可以工作。我将编辑问题为每个人提供解决方案。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2018-03-03
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    相关资源
    最近更新 更多