我刚刚开始使用 Architectury 框架开发 Minecraft Mod,前几天一切都很好,但最近我的项目开始出现各种问题,例如 Gson 错误(之前工作正常)、javafml 错误,由于缺少依赖项而无法启动等等。其中一些问题可以很好地修复,而另一些则迫使我删除整个项目和 . gradle 文件夹,但今天我的 NeoForge 模块报告错误,并且在我删除整个 .gradle 文件夹和项目并重建它后它仍然报告错误,而报告错误的项目几天前工作正常。 我的我的世界版本:1.20.4 我的 JDK:21(与 Gradle JDK 和 JAVA_HOME 相同的 JDK) 我的 Gradle 版本:8.6
我在网上找了很久,也改了很多东西,但好像都不起作用。
我很想知道如何解决这个问题,我希望其他人可以帮我回答这个问题,非常感谢!
您可以在我的附件中看到更多代码。
这是日志(带有错误报告):
"C:\Program Files\Java\jdk-21\bin\java.exe" -Dfabric.dli.config=C:\Users\stars\Documents\Learn\Code\App\Kotlin\Gradle\Minecraft@@0020Mod\OwOMod\neoforge\.gradle\loom-cache\launch.cfg -Dfabric.dli.env=client -p C:\Users\stars\.gradle\caches\modules-2\files-2.1\cpw.mods\securejarhandler\2.1.24\21e16217c30688d99200796f5d828ad5b671141c\securejarhandler-2.1.24.jar;C:\Users\stars\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-commons\9.5\19ab5b5800a3910d30d3a3e64fdb00fd0cb42de0\asm-commons-9.5.jar;C:\Users\stars\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-util\9.5\64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe\asm-util-9.5.jar;C:\Users\stars\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarFileSystems\0.4.0\ef7e5716525bbe50c784a362f9393457a33e6daf\JarJarFileSystems-0.4.0.jar;C:\Users\stars\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\9.5\dc6ea1875f4d64fbc85e1691c95b96a3d8569c90\asm-9.5.jar;C:\Users\stars\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-tree\9.5\fd33c8b6373abaa675be407082fdfda35021254a\asm-tree-9.5.jar;C:\Users\stars\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-analysis\9.5\490bacc77de7cbc0be1a30bb3471072d705be4a4\asm-analysis-9.5.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-opens java.base/java.lang.invoke=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming -Dfabric.dli.main=cpw.mods.bootstraplauncher.BootstrapLauncher "-Darchitectury.main.class=C:\Users\stars\Documents\Learn\Code\App\Kotlin\Gradle\Minecraft Mod\OwOMod\neoforge\.gradle\architectury\.main_class" "-Darchitectury.runtime.transformer=C:\Users\stars\Documents\Learn\Code\App\Kotlin\Gradle\Minecraft Mod\OwOMod\neoforge\.gradle\architectury\.transforms" "-Darchitectury.properties=C:\Users\stars\Documents\Learn\Code\App\Kotlin\Gradle\Minecraft Mod\OwOMod\neoforge\.gradle\architectury\.properties" -Djdk.attach.allowAttachSelf=true "-javaagent:C:\Users\stars\Documents\Learn\Code\App\Kotlin\Gradle\Minecraft Mod\OwOMod\.gradle\architectury\architectury-transformer-agent.jar" "-javaagent:C:\Users\stars\AppData\Local\Programs\IntelliJ IDEA Community Edition\lib\idea_rt.jar=10007:C:\Users\stars\AppData\Local\Programs\IntelliJ IDEA Community Edition\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 @C:\Users\stars\AppData\Local\Temp\idea_arg_file2128017985 dev.architectury.transformer.TransformerRuntime
[Architectury Transformer] Architectury Runtime 5.2.83
[Architectury Transformer] Read classpath in 1.349 s
[Architectury Transformer] Listening at C:\Users\stars\Documents\Learn\Code\App\Kotlin\Gradle\Minecraft Mod\OwOMod\common\build\devlibs\OwOMod-1.0-dev.jar
[20:07:43] [main/INFO] (Launcher) ModLauncher running: args [--launchTarget, forgeclientuserdev, --version, 20.4.225, --assetIndex, 1.20.4-12, --assetsDir, C:\Users\stars\.gradle\caches\fabric-loom\assets, --gameDir, ., --fml.neoForgeVersion, 20.4.225, --fml.fmlVersion, 2.0.17, --fml.mcVersion, 1.20.4, --fml.neoFormVersion, 20231207.154220]
[20:07:43] [main/INFO] (Launcher) ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 21.0.2 by Oracle Corporation; OS Windows 11 arch amd64 version 10.0
[20:07:43] [main/INFO] (ImmediateWindowHandler) Loading ImmediateWindowProvider fmlearlywindow
[LWJGL] [ThreadLocalUtil] Unsupported JNI version detected, this may result in a crash. Please inform LWJGL developers.
[20:07:43] [main/INFO] (EARLYDISPLAY) Trying GL version 4.6
[20:07:44] [main/INFO] (EARLYDISPLAY) Requested GL version 4.6 got version 4.6
[20:07:44] [main/INFO] (mixin) SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/stars/.gradle/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.13.1+mixin.0.8.5/618f4dff860cf2d6b5196073b1a5f5e0a8591acb/sponge-mixin-0.13.1+mixin.0.8.5.jar%23102!/ Service=ModLauncher Env=CLIENT
[20:07:44] [pool-5-thread-1/INFO] (EARLYDISPLAY) GL info: AMD Radeon(TM) Graphics GL version 4.6.0 Core Profile Context 24.3.1.240216, ATI Technologies Inc.
[20:07:44] [main/ERROR] (ModInfo) Mod 'owomod' uses deprecated 'mandatory' field in the dependency declaration for 'neoforge'. Use the 'type' field and 'required'/'optional' instead
[20:07:44] [main/ERROR] (ModDiscoverer) Locator net.neoforged.fml.loading.moddiscovery.MinecraftLocator@500e995b found an invalid mod file net.neoforged.fml.loading.moddiscovery.ModFileInfo@36c763cd
net.neoforged.fml.loading.moddiscovery.InvalidModFileException: Deprecated 'mandatory' field is used in dependency (main)
at net.neoforged.fml.loading.moddiscovery.ModInfo$ModVersion.lambda$new$2(ModInfo.java:228) ~[loader-2.0.17.jar%23120!/:2.0]
at java.util.Optional.orElseGet(Optional.java:364) ~[?:?]
at net.neoforged.fml.loading.moddiscovery.ModInfo$ModVersion.<init>(ModInfo.java:221) ~[loader-2.0.17.jar%23120!/:2.0]
at net.neoforged.fml.loading.moddiscovery.ModInfo.lambda$new$8(ModInfo.java:102) ~[loader-2.0.17.jar%23120!/:2.0]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) ~[?:?]
at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) ~[?:?]
at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) ~[?:?]
at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622) ~[?:?]
at java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627) ~[?:?]
at net.neoforged.fml.loading.moddiscovery.ModInfo.<init>(ModInfo.java:103) ~[loader-2.0.17.jar%23120!/:2.0]
at net.neoforged.fml.loading.moddiscovery.ModFileInfo.lambda$new$2(ModFileInfo.java:88) ~[loader-2.0.17.jar%23120!/:2.0]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) ~[?:?]
at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) ~[?:?]
at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) ~[?:?]
at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622) ~[?:?]
at java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627) ~[?:?]
at net.neoforged.fml.loading.moddiscovery.ModFileInfo.<init>(ModFileInfo.java:89) ~[loader-2.0.17.jar%23120!/:2.0]
at net.neoforged.fml.loading.moddiscovery.ModFileParser.modsTomlParser(ModFileParser.java:47) ~[loader-2.0.17.jar%23120!/:2.0]
at net.neoforged.fml.loading.moddiscovery.ModFileParser.readModList(ModFileParser.java:31) ~[loader-2.0.17.jar%23120!/:2.0]
at net.neoforged.fml.loading.moddiscovery.ModFile.<init>(ModFile.java:72) ~[loader-2.0.17.jar%23120!/:2.0]
at net.neoforged.fml.loading.moddiscovery.ModFile.<init>(ModFile.java:61) ~[loader-2.0.17.jar%23120!/:2.0]
at net.neoforged.fml.loading.moddiscovery.AbstractModProvider.createMod(AbstractModProvider.java:48) ~[loader-2.0.17.jar%23120!/:2.0]
at net.neoforged.fml.loading.moddiscovery.MinecraftLocator.lambda$scanMods$4(MinecraftLocator.java:51) ~[loader-2.0.17.jar%23120!/:2.0]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
at java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:722) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) ~[?:?]
at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) ~[?:?]
at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) ~[?:?]
at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) ~[?:?]
at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622) ~[?:?]
at java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627) ~[?:?]
at net.neoforged.fml.loading.moddiscovery.MinecraftLocator.scanMods(MinecraftLocator.java:55) ~[loader-2.0.17.jar%23120!/:2.0]
at net.neoforged.fml.loading.moddiscovery.ModDiscoverer.discoverMods(ModDiscoverer.java:75) ~[loader-2.0.17.jar%23120!/:2.0]
at net.neoforged.fml.loading.FMLLoader.beginModScan(FMLLoader.java:155) ~[loader-2.0.17.jar%23120!/:2.0]
at net.neoforged.fml.loading.FMLServiceProvider.beginScanning(FMLServiceProvider.java:88) ~[loader-2.0.17.jar%23120!/:2.0]
at cpw.mods.modlauncher.TransformationServiceDecorator.runScan(TransformationServiceDecorator.java:112) ~[modlauncher-10.0.9.jar%23108!/:?]
at cpw.mods.modlauncher.TransformationServicesHandler.lambda$runScanningTransformationServices$8(TransformationServicesHandler.java:100) ~[modlauncher-10.0.9.jar%23108!/:?]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1787) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) ~[?:?]
at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) ~[?:?]
at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) ~[?:?]
at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622) ~[?:?]
at java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627) ~[?:?]
at cpw.mods.modlauncher.TransformationServicesHandler.runScanningTransformationServices(TransformationServicesHandler.java:102) ~[modlauncher-10.0.9.jar%23108!/:?]
at cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:55) ~[modlauncher-10.0.9.jar%23108!/:?]
at cpw.mods.modlauncher.Launcher.run(Launcher.java:88) ~[modlauncher-10.0.9.jar%23108!/:?]
at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar%23108!/:?]
at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar%23108!/:?]
at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar%23108!/:?]
at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[?:?]
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) ~[dev-launch-injector-0.2.1+build.8.jar%23185!/:?]
at dev.architectury.transformer.TransformerRuntime.main(TransformerRuntime.java:219) ~[?:?]
[20:07:44] [main/INFO] (ModDiscoverer) Found mod file "architectury-neoforge-11.1.17.jar" of type MOD with provider net.neoforged.fml.loading.moddiscovery.ClasspathLocator@140e003e
[20:07:44] [main/INFO] (ModDiscoverer) Found mod file "12064720311035780716.jar" of type MOD with provider net.neoforged.fml.loading.moddiscovery.ClasspathLocator@140e003e
[20:07:44] [main/INFO] (ModDiscoverer) Found mod file "architectury-neoforge-11.1.17.jar" of type MOD with provider net.neoforged.fml.loading.moddiscovery.ClasspathLocator@140e003e
[20:07:44] [main/INFO] (ModDiscoverer) Found mod file "12064720311035780716.jar" of type MOD with provider net.neoforged.fml.loading.moddiscovery.ClasspathLocator@140e003e
[20:07:44] [main/INFO] (JarInJarDependencyLocator) No dependencies to load found. Skipping!
Exception in thread "main" java.lang.IllegalStateException: Failed to find system mod: minecraft
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.ModSorter.detectSystemMods(ModSorter.java:192)
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.ModSorter.buildUniqueList(ModSorter.java:156)
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.ModSorter.sort(ModSorter.java:50)
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.moddiscovery.ModValidator.stage2Validation(ModValidator.java:104)
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.FMLLoader.completeScan(FMLLoader.java:163)
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.FMLServiceProvider.completeScan(FMLServiceProvider.java:93)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServiceDecorator.onCompleteScan(TransformationServiceDecorator.java:174)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.lambda$triggerScanCompletion$24(TransformationServicesHandler.java:145)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1787)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.triggerScanCompletion(TransformationServicesHandler.java:147)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:95)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:78)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26)
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23)
at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141)
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)
at dev.architectury.transformer.TransformerRuntime.main(TransformerRuntime.java:219)
这是 gradle.properties 文件中的内容:
org.gradle.jvmargs=-Xmx2048M
minecraft_version=1.20.4
enabled_platforms=fabric,forge
archives_base_name=OwOMod
mod_version=1.0
maven_group=org.starcloudsea.owomod
architectury_version=11.1.17
fabric_loader_version=0.15.9
fabric_api_version=0.96.11+1.20.4
neoforge_version=20.4.225
这是 neoforge/src/main/resources/META-INF/mods.toml 文件中的内容:
modLoader="javafml"
loaderVersion="[2,)"
license="Apache 2.0"
issueTrackerURL="https://github.com/Starcloudsea/OwOMod/issues"
[[mods]] #mandatory
modId="owomod"
version="${version}"
displayName="OwOMod"
displayURL="https://starcloudsea.gitlab.io/StarseaDB/zhCN/"
logoFile="icon.png"
authors="Starcloudsea"
description='''
9
'''
[[dependencies.owomod]]
modId="neoforge" #mandatory
mandatory=true #mandatory
versionRange="[20.4.225,)" #mandatory
ordering="NONE"
side="BOTH"
[[dependencies.owomod]]
modId="minecraft"
mandatory=true
versionRange="[1.20.4,1.21)"
ordering="NONE"
side="BOTH"
[[mixins]]
config = "owomod.mixins.json"
[[mixins]]
config = "owomod-common.mixins.json"
顺便说一句,OwOMod 不是官方 mod 名称,这只是我为了学习 mod 创建而制作的一个 mod,这个 mod 不会发布。
我真的需要一个解决方案,谢谢!
这就是我创建项目的方式:
如果在步骤2之后运行NeoForge客户端,似乎会触发错误。
错误发生是这样的:
看来如果项目构建成功,无论是运行Forge客户端还是替换后运行NeoForge客户端都会出现这个错误,即使删除整个Gradle并重新创建项目也是如此。
我的预期行为:即使配置了 Kotlin,启动 NeoForge 客户端时 Mod 也会正常加载,并且游戏也能正常启动。
依赖声明中的
mandatory
字段已被弃用,取而代之的是新字段 type
。
它不是
true
/false
字段,而是需要 required
、optional
、incompatible
或 discouraged
。required
使依赖成为必需,否则你的 mod 将无法运行(相当于 mandatory = true
)
optional
表示不需要该模组,但存在兼容性(相当于mandatory = false
)
如果加载依赖项,incompatible
会使您的 mod 无法运行
discouraged
加载此依赖项时会警告用户
还有一个
reason
声明,可用于说明为什么需要依赖项,或者为什么它不兼容,等等。