|
一、崩溃基本信息
崩溃时间:2024-11-17 14:14:53
事件描述:mouseClicked event handler(鼠标点击事件处理程序相关)
二、崩溃原因分析
主要异常类型:org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError(混合变换器错误),表示在处理游戏中的混合(mixin)相关操作时遇到了意外的严重错误。
具体错误根源:
由 org.spongepowered.asm.mixin.throwables.MixinApplyError 导致,具体是在处理来自 mod sodiumoptionsapi 的 mixins.sodiumoptionsapi.json:sodium.FlatButtonWidgetOffsetMixin 这个混合配置时出错。
进一步原因是 org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException,即注入操作时的描述符无效。期望的描述符格式是 (Lorg/spongepowered/asm/mixin/injection/invoke/arg/Args;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;) V,但实际找到的是 (Lnet/caffeinemc/mods/sodium/client/gui/widgets/FlatButtonWidget;Lnet/minecraft/client/gui/GuiGraphics;Lnet/minecraft/network/chat/Component;IIILorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;) V 。这意味着在对特定的图形用户界面组件(FlatButtonWidget)进行注入操作以修改其绘制字符串(redirectDrawString)的功能时,参数格式不匹配,导致了混合操作无法正确应用,进而引发了整个游戏的崩溃。
三、错误代码路径
报告详细列出了从游戏启动到崩溃发生时涉及的一系列类和方法的调用栈,以下是关键部分的简述:
起始于混合处理器相关操作:从 org.spongepowered.mixin 的 MixinProcessor.applyMixins 方法开始,经过一系列与混合变换器、类加载、处理类等相关的操作,如 MixinTransformer.transformClass、MixinTransformationHandler.processClass 等。
涉及到 Sodium 相关的图形界面操作:在处理过程中,涉及到了 net.caffeinemc.mods.sodium.client.gui.SodiumOptionsGUI 相关的方法,如 rebuildGUIPages、rebuildGUI、init 等,这些方法在初始化和构建 Sodium 相关的图形界面选项时,由于上述混合配置的错误,导致了后续问题。
与游戏核心界面及鼠标操作交互:进一步关联到 net.minecraft.client.gui.screens.Screen、net.minecraft.client.MouseHandler 等核心类的方法,如 init、onPress、mouseClicked 等,最终在鼠标点击操作处理过程中触发了错误,导致游戏崩溃。
四、相关环境信息
游戏版本:Minecraft 1.21.1-NeoForge
操作系统:Windows 11 (amd64) version 10.0
Java 版本:21.0.2,Oracle Corporation
硬件信息:
CPU:12th Gen Intel (R) Core (TM) i5-12450H,12 逻辑核心,8 物理核心
显卡:Intel (R) UHD Graphics(1024 MiB VRAM)和 NVIDIA GeForce RTX 3050 Laptop GPU(4096 MiB VRAM)
内存:总内存 8000 MiB,当前已使用部分内存(如 520539376 bytes (496 MiB) / 973078528 bytes (928 MiB) 等相关信息)
已加载的模组(部分列举):包括但不限于 ConnectorExtras、emi-bridge、energy-bridge、jei-bridge、kubejs-bridge 等众多模组,如 sodium-neoforge、reeses-sodium-options、sodiumoptionsapi 等与此次错误可能相关的模组也在列。
五、解决建议
检查模组兼容性:由于错误与特定模组(sodiumoptionsapi)的混合配置相关,首先检查该模组是否与当前游戏版本(1.21.1)以及其他已安装的模组(如 Sodium 相关的其他模组)兼容。可以查看模组的官方文档、论坛或在相关模组社区询问是否有已知的兼容性问题及解决方案。
更新模组:尝试更新涉及到的模组(如 sodiumoptionsapi、Sodium 相关模组等)到最新版本,可能新版本已经修复了此类混合注入的错误。
检查混合配置:如果对模组开发有一定了解,可以进一步检查 mixins.sodiumoptionsapi.json 这个混合配置文件中关于 sodium.FlatButtonWidgetOffsetMixin 的配置,确保注入点和参数设置的正确性,使其符合预期的格式要求。但请注意,在修改配置文件之前备份原文件,以免造成更严重的问题。 |
|