Renderer icon indicating copy to clipboard operation
Renderer copied to clipboard

Can't install Renderer | Linkage Error

Open copyandexecute opened this issue 1 year ago • 5 comments

Bug Description

I cant get Renderer running while having owolib installed, but cant tell whats the problem is as Satin and Renderer are not using org.w3c.dom.Node?

    include(modImplementation("io.github.ladysnake:satin:1.14.0")!!)
    include(modImplementation("io.wispforest:owo-lib:0.11.2-pre.12+1.20")!!)

Code

---- Minecraft Crash Report ----
// Don't do that.

Time: 2023-08-27 16:54:51
Description: Unexpected error

java.lang.LinkageError: loader constraint violation: loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @4cf4d528 wants to load interface org.w3c.dom.Node. A different interface with the same name was previously loaded by 'bootstrap'. (org.w3c.dom.Node is in module java.xml of loader 'bootstrap')
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.defineClassFwd(KnotClassLoader.java:153)
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:355)
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218)
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:112)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at io.wispforest.owo.ui.base.BaseParentComponent.<init>(BaseParentComponent.java:32)
	at io.wispforest.owo.ui.container.FlowLayout.<init>(FlowLayout.java:25)
	at io.wispforest.owo.ui.hud.HudContainer.<init>(HudContainer.java:18)
	at io.wispforest.owo.ui.core.OwoUIAdapter.createWithoutScreen(OwoUIAdapter.java:92)
	at io.wispforest.owo.ui.hud.Hud.initializeAdapter(Hud.java:74)
	at io.wispforest.owo.ui.hud.Hud.lambda$static$3(Hud.java:102)
	at net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback.lambda$static$0(HudRenderCallback.java:27)
	at net.minecraft.client.gui.hud.InGameHud.handler$bde000$fabric-rendering-v1$render(InGameHud.java:2886)
	at net.minecraft.client.gui.hud.InGameHud.render(InGameHud.java:370)
	at net.minecraft.client.render.GameRenderer.render(GameRenderer.java:926)
	at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1219)
	at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:802)
	at net.minecraft.client.main.Main.main(Main.java:250)
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:468)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)

Desktop

  • OS: Windows
  • GPU: Nvidia

copyandexecute avatar Aug 27 '23 14:08 copyandexecute

this single class has caused so many issues in my developer life it is unreal

0x3C50 avatar Aug 27 '23 15:08 0x3C50

same

copyandexecute avatar Aug 27 '23 22:08 copyandexecute

Hey guys, is there any solution for this problem?

Just tried to render my svg and yea... xD

ArtusLama avatar Apr 06 '24 12:04 ArtusLama

I've looked at both the renderer dependency tree and the dependency tree of owo, and neither contain another definition for Node. Some other mod has to provide that class, causing the knot loader to load that Node instead of passing the request down to the platform loader. What're your other dependencies?

0x3C50 avatar Apr 06 '24 12:04 0x3C50

I think only the renderer and fabric loader + api. I mean I have installed lombok but why would this cause any errors xD As solution for now I'm just rendering a png file which works fine for me

ArtusLama avatar Apr 06 '24 19:04 ArtusLama

same here, only when rendering svg files

vMohammad24 avatar Apr 29 '24 17:04 vMohammad24

tldr because this was a FUCKED UP thing to debug:

  • gradle prefers its own module metadata over POMs
  • jitpack replaces(?) the module metadata by gradle with its own, which is incorrect and doesn't take into account the exclusions of transitive dependencies
  • gradle sees metadata without excludes downloaded from jitpack, resolves dependencies and INCLUDES the xml-apis library used by batik, which declares its own version of the Node interface also present in the standard library

0x3C50 avatar May 01 '24 20:05 0x3C50

its fixed now, the most recent release works

0x3C50 avatar May 01 '24 20:05 0x3C50

i am going insane fuck this shit ass library

0x3C50 avatar May 04 '24 19:05 0x3C50