为什么我的 Architectury Mod 项目不写代码就一直崩溃?

问题描述 投票:0回答:1

我刚刚开始使用 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 不会发布。

我真的需要一个解决方案,谢谢!

这就是我创建项目的方式:

  1. 使用IntelliJ IDEA插件Minecraft Development Kit创建一个Architectury项目,Minecraft版本是1.20.4,JDK版本是21(并且Gradle运行时和JAVA_HOME变量是相同的JDK),使用Mixin。所有其他加载程序都是最新的。
  2. 将 Architectury Loom 更新至 1.5-SNAPSHOT,并将 Gradle 替换为 8.7。
  3. 删除(不是删除)Forge模块并创建一个新的NeoForge模块,将Forge模块中的build.gradle、gradle.properties和src文件夹复制到NeoForge模块。
  4. 为所有模块添加 Kotlin 支持(但是今天因为这个错误我没有添加 Kotlin 支持)

如果在步骤2之后运行NeoForge客户端,似乎会触发错误。

错误发生是这样的:

看来如果项目构建成功,无论是运行Forge客户端还是替换后运行NeoForge客户端都会出现这个错误,即使删除整个Gradle并重新创建项目也是如此。

我的预期行为:即使配置了 Kotlin,启动 NeoForge 客户端时 Mod 也会正常加载,并且游戏也能正常启动。

java gradle minecraft minecraft-forge
1个回答
0
投票

依赖声明中的

mandatory
字段已被弃用,取而代之的是新字段
type

它不是

true
/
false
字段,而是需要
required
optional
incompatible
discouraged

required
使依赖成为必需,否则你的 mod 将无法运行(相当于
mandatory = true
optional
表示不需要该模组,但存在兼容性(相当于
mandatory = false
) 如果加载依赖项,
incompatible
会使您的 mod 无法运行
discouraged
加载此依赖项时会警告用户

还有一个

reason
声明,可用于说明为什么需要依赖项,或者为什么它不兼容,等等。

© www.soinside.com 2019 - 2024. All rights reserved.