SNWCreations/KookBC

重复的类引起的LinkageError错误

Closed this issue · 4 comments

您期望得到什么

正确启动

实际得到什么

无法启动

重现错误的步骤

1.插件包含重复的类

报错日志

[23:43:46] [Main Thread/ERROR]: Unexpected situation happened during the execution of main method!
 java.lang.LinkageError: loader constraint violation: when resolving method 'void snw.kookbc.impl.network.ws.Connector.<init>(snw.kookbc.impl.KBCClient)' the class loader snw.kookbc.impl.launch.LaunchClassLoader @65ab7765 of the current class, snw/kookbc/impl/network/ws/OkhttpWebSocketNetworkSystem, and the class loader 'app' for the method's defining class, snw/kookbc/impl/network/ws/Connector, have different Class objects for the type snw/kookbc/impl/KBCClient used in the signature (snw.kookbc.impl.network.ws.OkhttpWebSocketNetworkSystem is in unnamed module of loader snw.kookbc.impl.launch.LaunchClassLoader @65ab7765, parent loader 'bootstrap'; snw.kookbc.impl.network.ws.Connector is in unnamed module of loader 'app')
        at snw.kookbc.impl.network.ws.OkhttpWebSocketNetworkSystem.start(OkhttpWebSocketNetworkSystem.java:37) ~[kookbc-0.27.3.jar:0.27.3]
        at snw.kookbc.impl.KBCClient.startNetwork(KBCClient.java:367) ~[kookbc-0.27.3.jar:0.27.3]
        at snw.kookbc.impl.KBCClient.start(KBCClient.java:230) ~[kookbc-0.27.3.jar:0.27.3]
        at snw.kookbc.Main.startClient(Main.java:174) ~[kookbc-0.27.3.jar:0.27.3]
        at snw.kookbc.Main.start(Main.java:142) ~[kookbc-0.27.3.jar:0.27.3]
        at snw.kookbc.Main.main0(Main.java:63) ~[kookbc-0.27.3.jar:0.27.3]
        at snw.kookbc.Main.main(Main.java:51) ~[kookbc-0.27.3.jar:0.27.3]
        at snw.kookbc.LaunchMain.lambda$launch$2(LaunchMain.java:236) ~[kookbc-0.27.3.jar:0.27.3]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]

相关信息

  • KookBC 版本: 0.27.3
  • Java 版本: 17
  • 操作系统 (及其版本): Window 10

丢失问题发生时的具体提交号。
已查阅PR,但是在PR之前的版本突然无法复现此问题了。
填写 latest 没有任何帮助,在出问题的版本为非正式版时,使用提交号更明确。

已经尝试从 0.27.3 签出。可以复现。
问题可以确认解决。
但是,在 next-api 分支上 (cc36375),此问题消失了,无法确定是否是由此 PR 修复。

我在现有dev分支尝试过是存在的,该问题的在LaunchMain的启动下才会出现

PR merged and this should be closed