HMCL-dev / HMCL

A Minecraft Launcher which is multi-functional, cross-platform and popular
https://hmcl.huangyuhui.net
GNU General Public License v3.0
6.9k stars 675 forks source link

[Bug] 日志界面新功能CTRL+C空指针异常 #2826

Closed wifi-left closed 8 months ago

wifi-left commented 8 months ago

平台 | Platform

Windows11, OpenJDK 8

问题描述 | Problem Description

日志界面,选中后CTRL+C,按一次弹一次异常 image

启动器崩溃报告 / 启动器日志文件 | Launcher Crash Report / Launcher Log File

---- Hello Minecraft! Crash Report ----
  Version: 3.5.5.235
  Time: 2024-02-17 20:29:34
  Thread: Thread[JavaFX Application Thread,5,main]

  Content: 
    java.lang.NullPointerException
    at org.jackhuang.hmcl.ui.Controllers.showToast(Controllers.java:383)
    at org.jackhuang.hmcl.ui.FXUtils.copyText(FXUtils.java:910)
    at org.jackhuang.hmcl.ui.LogWindow$LogWindowSkin.lambda$new$2(LogWindow.java:411)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Scene$KeyHandler.process(Scene.java:3964)
    at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3910)
    at javafx.scene.Scene.impl_processKeyEvent(Scene.java:2040)
    at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2501)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:217)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:149)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$1(GlassViewEventHandler.java:248)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:247)
    at com.sun.glass.ui.View.handleKeyEvent(View.java:546)
    at com.sun.glass.ui.View.notifyKey(View.java:966)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$3(WinApplication.java:177)
    at java.lang.Thread.run(Thread.java:748)

-- System Details --
  Operating System: Windows 11 10.0.22621.3007
  System Architecture: amd64
  Java Architecture: amd64
  Java Version: 1.8.0_275, BellSoft
  Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), BellSoft
  JVM Max Memory: 186646528
  JVM Total Memory: 126877696
  JVM Free Memory: 89532048
burningtnt commented 8 months ago

啊?

wifi-left commented 8 months ago

需要视频吗?或者用jdk8在你那边试试

burningtnt commented 8 months ago

看起来和这个功能关系不大。是 org.jackhuang.hmcl.ui.Controllers#decorator 为 null 引起的

burningtnt commented 8 months ago

哦,你是不是已经关闭了 HMCL 主窗体,只保留了日志窗口?

wifi-left commented 8 months ago

是的(难道启动游戏后不该关闭吗?)

wifi-left commented 8 months ago

MC已经结束运行后

burningtnt commented 8 months ago

擦,那就是 FXUtils 没考虑周全

wifi-left commented 8 months ago

我试了下,只要启动游戏后在日志界面复制就出错。

wifi-left commented 8 months ago

提示框绑定的主界面,但日志窗体只会在游戏启动后出现,主界面已经隐藏(关闭)