2023年12月14日
开发小记 解决Fabric模组运行报错duplicate fabric loader classes found
情况介绍
我需要为Minecraft 1.19.1制作一个工作在Fabric Loader上的模组。
并且这个模组有一些配置项可以让用户自行调整。
我使用了ModMenu和Cloth Config API
根据文档我把我的build.gradle改成了这样:
然后呢,我还什么代码都没写,内置的Minecraft Client任务就已经运行不起来了:
这是我的报错:
Exception in thread "main" java.lang.ExceptionInInitializerError at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) Caused by: java.lang.IllegalStateException: duplicate fabric loader classes found on classpath: jar:file:/C:/Users/TheWhiteDog9487/.gradle/caches/modules-2/files-2.1/net.fabricmc/fabric-loader/0.15.1/b5e44adc848d1c3709194b01f97629de145c8a65/fabric-loader-0.15.1.jar!/net/fabricmc/loader/api/FabricLoader.class, jar:file:/D:/SourceCode/JetBrains/IntelliJ%20IDEA/untitled/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_19_1_1_19_1_build_6_v2/net/fabricmc/fabric-loader/0.14.8/fabric-loader-0.14.8.jar!/net/fabricmc/loader/api/FabricLoader.class at net.fabricmc.loader.impl.util.LoaderUtil.verifyClasspath(LoaderUtil.java:65) at net.fabricmc.loader.impl.launch.knot.Knot.<clinit>(Knot.java:347) ... 2 more
怎么解决呢?
把modApi指令换成modImplementation,然后重载Gradle项目配置文件
一定要记得重载Gradle项目配置文件!
然后就可以了
这个问题的具体原理不详,但这个方法确实好使。
另外,我在Minecraft 1.20.4上没有观测到这个问题
TheWhiteDog9487
2023 12 14
C语言课程上课期间攥写完成