You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS运行JavaFX应用时出现NSInternalInconsistencyException错误

MacBook上JavaFX应用运行错误排查与解决

错误日志

/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=59280:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/sharkvary/.m2/repository/org/openjfx/javafx-controls/17.0.2/javafx-controls-17.0.2.jar:/Users/sharkvary/.m2/repository/org/openjfx/javafx-graphics/17.0.2/javafx-graphics-17.0.2.jar:/Users/sharkvary/.m2/repository/org/openjfx/javafx-base/17.0.2/javafx-base-17.0.2.jar:/Users/sharkvary/.m2/repository/org/openjfx/javafx-fxml/17.0.2/javafx-fxml-17.0.2.jar -p /Users/sharkvary/.m2/repository/org/openjfx/javafx-graphics/17.0.2/javafx-graphics-17.0.2-mac.jar:/Users/sharkvary/.m2/repository/org/openjfx/javafx-fxml/17.0.2/javafx-fxml-17.0.2-mac.jar:/Users/sharkvary/.m2/repository/org/openjfx/javafx-base/17.0.2/javafx-base-17.0.2-mac.jar:/Users/sharkvary/.m2/repository/org/openjfx/javafx-controls/17.0.2/javafx-controls-17.0.2-mac.jar:/Users/sharkvary/Dev-sharkvary/workspace-intellij/test/target/classes -m com.example.test/com.example.test.HelloApplication
2023-01-23 23:20:16.248 java[8301:107116] *** Assertion failure in -[_NSTrackingAreaAKViewHelper removeTrackingRect:], _NSTrackingAreaAKManager.m:1602
2023-01-23 23:20:16.251 java[8301:107116] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '0x0 is an invalid NSTrackingRectTag. Common possible reasons for this are: 1. already removed this trackingRectTag, 2. Truncated the NSTrackingRectTag to 32bit at some point.'

*** First throw call stack:
(
        0   CoreFoundation                      0x00007ff81a3f140b __exceptionPreprocess + 242
        1   libobjc.A.dylib                     0x00007ff819f3de25 objc_exception_throw + 48
        2   Foundation                          0x00007ff81b294fb0 -[NSCalendarDate initWithCoder:] + 0
        3   AppKit                              0x00007ff81db79490 -[_NSTrackingAreaAKViewHelper removeTrackingRect:] + 190
        4   libglass.dylib                      0x00000001306104e9 -[GlassViewDelegate setFrameSize:] + 361
        5   libglass.dylib                      0x0000000130615d68 -[GlassView3D setFrameSize:] + 88
        6   AppKit                              0x00007ff81d5037f5 -[NSView setFrame:] + 347
        7   libglass.dylib                      0x0000000130615dc5 -[GlassView3D setFrame:] + 69
        8   AppKit                              0x00007ff81d514645 -[NSView resizeWithOldSuperviewSize:] + 694
        9   AppKit                              0x00007ff81d513f76 -[NSView resizeSubviewsWithOldSize:] + 488
        10  AppKit                              0x00007ff81d4f363a -[NSView setFrameSize:] + 1460
        11  AppKit                              0x00007ff81d5037f5 -[NSView setFrame:] + 347
        12  AppKit                              0x00007ff81d514645 -[NSView resizeWithOldSuperviewSize:] + 694
        13  AppKit                              0x00007ff81d513f76 -[NSView resizeSubviewsWithOldSize:] + 488
        14  AppKit                              0x00007ff81d4f363a -[NSView setFrameSize:] + 1460
        15  AppKit                              0x00007ff81d51237a -[NSThemeFrame setFrameSize:] + 482
        16  AppKit                              0x00007ff81d511a3c -[NSWindow _oldPlaceWindow:fromServer:] + 813
        17  AppKit                              0x00007ff81d50fff1 -[NSWindow _setFrameCommon:display:fromServer:] + 1684
        18  libglass.dylib                      0x0000000130607acf -[GlassWindow(Java) _setFlipFrame:display:animate:] + 239
        19  libglass.dylib                      0x00000001306075cc -[GlassWindow(Java) _setWindowFrameWithRect:withDisplay:withAnimate:] + 268
        20  libglass.dylib                      0x000000013060781b -[GlassWindow(Java) _setBounds:y:xSet:ySet:w:h:cw:ch:] + 571
        21  libglass.dylib                      0x00000001306212fe Java_com_sun_glass_ui_mac_MacWindow__1setBounds2 + 446
        22  ???                                 0x0000000113b72a10 0x0 + 4625738256
)
libc++abi: terminating with uncaught exception of type NSException

Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

环境信息

  • OS:Ventura 13.1
  • IDE:IntelliJ Community 2022.3.1
  • Java:brew安装的openJDK 11
  • OpenJDK版本"11.0.18" 2023-01-17
  • OpenJDK Runtime Environment Homebrew (build 11.0.18+0)
  • OpenJDK 64-Bit Server VM Homebrew (build 11.0.18+0, mixed mode)
  • 应用:IntelliJ新建的JavaFX Maven示例项目

错误原因

这是macOS Ventura系统与旧版JavaFX的兼容性问题,核心是JavaFX的窗口管理组件(libglass.dylib)在处理窗口大小调整时,对macOS的NSTrackingRectTag管理出现异常,导致无效标签被重复移除或截断,触发AppKit的断言失败。

具体来说,JavaFX 17.0.2版本对Ventura系统的窗口跟踪区域适配不完善,加上单独的OpenJDK 11与JavaFX的组合在新系统下的兼容性问题,最终引发崩溃。

解决方法

  1. 升级JavaFX版本
    将项目中的JavaFX依赖升级到17.0.7及以上的LTS版本,或直接使用最新的JavaFX版本。后续版本修复了Ventura系统下的窗口管理相关bug,能有效避免该错误。

  2. 使用捆绑JavaFX的JDK
    替换当前的OpenJDK为Zulu JDK(Azul提供的带JavaFX捆绑的版本),确保JDK与JavaFX版本完全兼容,减少系统适配问题。

  3. 添加JVM启动参数
    在IntelliJ的运行配置中,添加以下JVM参数之一,禁用可能触发错误的窗口特性:

    • -Dglass.mac.useScreenMenuBar=false
    • -Djavafx.mac.windowStyle=plain
  4. 检查运行配置依赖
    确认IntelliJ的运行配置中,模块路径(--module-path)和依赖库没有重复或冲突的JavaFX组件,确保只加载对应macOS平台的JavaFX库。

内容的提问来源于stack exchange,提问作者user4182972

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:41:30