Installer Steam
log på
|
sprog
简体中文 (forenklet kinesisk)
繁體中文 (traditionelt kinesisk)
日本語 (japansk)
한국어 (koreansk)
ไทย (thai)
Български (bulgarsk)
Čeština (tjekkisk)
Deutsch (tysk)
English (engelsk)
Español – España (spansk – Spanien)
Español – Latinoamérica (spansk – Latinamerika)
Ελληνικά (græsk)
Français (fransk)
Italiano (italiensk)
Bahasa indonesia (indonesisk)
Magyar (ungarsk)
Nederlands (hollandsk)
Norsk
Polski (polsk)
Português (portugisisk – Portugal)
Português – Brasil (portugisisk – Brasilien)
Română (rumænsk)
Русский (russisk)
Suomi (finsk)
Svenska (svensk)
Türkçe (tyrkisk)
Tiếng Việt (Vietnamesisk)
Українська (ukrainsk)
Rapporter et oversættelsesproblem
I'm rather certain it's got to do with saved games where, prior to this latest update, a HaulExplicitly job was currently in progress. I tried it with a new game and experienced no issues.
Here's a paste with my Player.log at the moment where the error occurs (after that it just continues to throw the same exceptions ad infinitum): https://pastebin.com/aN4FMH0E
2. Then you should be able to find your save file according to the name of your save. First, make a copy of it as a backup, then right-click it and select “Open with...” and choose “Notepad” (I’m guessing you’re also using Windows. If not, it might be hard for me to help you).
3. Press “Ctrl+F” to search for
You should see this line of code inside a structure like this:
4. Replace this structure with:
5. Do this replacement for all occurrences you find. Save the file, close Notepad, and then go back to the game and open the save — it should work.
首先,我需要理解这个错误的原因。ArgumentNullException通常发生在尝试使用null引用时,这里是在Activator.CreateInstance(type)时type参数为null。可能的情况是某个地方试图实例化一个未正确初始化的类型,或者Mod加载了错误的类型。
接下来,我需要分析堆栈中的关键点。上下文是HaulExplicitly,这可能与搬运任务有关。Harmony补丁可能修改了原始代码,导致类型未正确加载或初始化。此外,堆栈中多次出现Harmony的补丁,可能涉及多个Mod的冲突。
接下来,我应该考虑如何解决这个问题。可能的步骤包括:
检查所有Mod是否兼容当前游戏版本,特别是涉及HaulExplicitly或搬运任务的Mod。
检查是否有Mod使用Harmony补丁修改了ThinkNode_PrioritySorter或相关类,可能导致类型加载失败。
尝试禁用部分Mod,特别是最近安装的,以确定是否是某个Mod引起的问题。
查看游戏日志或错误日志,寻找更多线索,比如具体的类型名称或Mod名称。
更新所有Mod到最新版本,确保兼容性。
如果问题持续,可能需要联系Mod作者或查看相关论坛,寻找已知问题和解决方案。
由于用户提供的堆栈信息中包含Harmony的补丁和Unity的堆栈提取,这可能表明问题与Mod的Harmony补丁有关。需要进一步调查这些补丁是否正确处理了类型实例化,或者是否存在类型加载失败的情况。
此外,用户可能希望得到具体的解决步骤,而不仅仅是理论分析。因此,我需要结合堆栈信息中的线索,如“HaulExplicitly”和“Activator.CreateInstance”,来推断可能的问题来源,并建议用户检查相关Mod或代码部分。
总结来说,我需要分析堆栈信息,确定错误原因,并给出具体的解决步骤,如检查Mod兼容性、更新Mod、禁用冲突Mod等。同时,可能需要用户提供更多信息,如Mod列表或游戏版本,以便更准确地诊断问题。
思考完成:
准备输出结果
根据错误日志分析,这是RimWorld游戏中由Harmony补丁引发的类型实例化空引用异常,核心问题出现在搬运任务(HaulExplicitly)的AI决策流程中。以下是系统性解决方案:
🔍 根本原因分析
空类型实例化:Activator.CreateInstance(null)触发异常,表明某个Mod尝试动态创建未正确初始化的类型,可能涉及搬运任务的Job定义。
Harmony补丁冲突:堆栈显示多个Harmony补丁(如TryIssueJobPackage_Patch1)在ThinkNode层级相互嵌套,可能因Mod兼容性问题导致类型加载失败。
上下文定位:HaulExplicitly上下文指向搬运任务逻辑,常见于仓库管理、资源搬运等场景,暗示问题与物品搬运AI相关。
🛠️ 解决方案路径
第一步:基础排查
检查Mod兼容性:
更新所有Mod至最新版本,特别是涉及搬运/任务系统的Mod(如《Pick Up and Haul》《Haul to Stack》)。
使用Mod管理器(如RimPy)检测冲突,按加载顺序调整Mod位置,确保基础框架Mod(如Harmony、HugsLib)优先加载。
验证游戏完整性:
在Steam中验证游戏文件完整性,排除官方代码损坏可能。
第二步:针对性修复
禁用可疑Mod:
临时禁用最近安装的搬运/任务类Mod,通过二分法定位冲突Mod。
重点检查使用Harmony补丁修改AI决策树的Mod(如《Allow Tool》《Work Tab》)。
清理缓存与配置:
删除游戏目录下的Config和Cache文件夹,重置配置文件。
清除Mod配置中的冗余设置(如自定义工作优先级)。
第三步:高级调试
日志深度分析:
启用开发模式(-dev启动参数),查看完整错误日志,定位触发异常的具体类型名称。
使用RimWorld Log Analyzer等工具解析日志,识别异常前最后一次成功操作。
代码级修复(高级用户):
若具备编程能力,检查Mod源码中Activator.CreateInstance调用处是否传递了null类型,添加空值检查逻辑:
csharp
if (type != null)
{
object instance = Activator.CreateInstance(type);
}
else
{
Log.Error("Attempted to create instance of null type in HaulExplicitly context");
}
📌 预防措施
定期更新Mod:订阅Mod作者的版本更新通知,及时修复兼容性问题。
备份存档:在修改Mod配置前备份存档文件,避免数据丢失。
社区支持:在RimWorld官方论坛或Mod评论区提交错误报告,附完整日志文件(Player.log),协助开发者定位问题。
建议优先执行基础排查步骤,若问题持续,可提供Mod列表及错误日志完整片段,进一步分析具体冲突源。
——
来自AI的回复,希望能对你有帮助。
如果这条红字会循环出现,你可以先点一下日志界面左上角的clear,然后等到它第一次出现,这是这条红字应该就不带“Duplicate stacktrace, see ref for original”了。
🤔看来是我记错了,是Harmony导致重复红字带有“Duplicate stacktrace, see ref for original”,不是原版更新来的。(来源:百度贴吧[tieba.baidu.com])
[Ref E33F6328] Duplicate stacktrace, see ref for original
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch4 (string)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.JobGiver_Work.TryIssueJobPackage_Patch1 (RimWorld.JobGiver_Work,Verse.Pawn,Verse.AI.JobIssueParams)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Glue:AbiFixup<Verse.AI.ThinkResult RimWorld.JobGiver_Work:TryIssueJobPackage(Verse.Pawn, Verse.AI.JobIssueParams),Verse.AI.ThinkResult RimWorld.JobGiver_Work.TryIssueJobPackage_Patch1(RimWorld.JobGiver_Work, Verse.Pawn, Verse.AI.JobIssueParams)> (RimWorld.JobGiver_Work,Verse.AI.ThinkResult&,Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.Pawn_JobTracker:DetermineNextJob (Verse.ThinkTreeDef&,bool)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch2 (Verse.AI.Pawn_JobTracker,Verse.AI.JobCondition,bool,bool)
Verse.AI.Pawn_JobTracker:JobTrackerTickInterval (int)
Verse.Pawn:TickInterval (int)
Verse.Thing:DoTick ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.TickList.Tick_Patch2 (Verse.TickList)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.TickManager.DoSingleTick_Patch4 (Verse.TickManager)
Verse.TickManager:TickManagerUpdate ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Game.UpdatePlay_Patch2 (Verse.Game)
Verse.Root_Play:Update ()
殖民者
.和搬运机都不能正常搬物品,这是bug吗,问ai说是不能正确找到要搬运的物品
这样,你能试试用文件管理器打开地址:%appdata%\..\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios\
然后把里面的Player.log文件通过网盘发给我吗?
2.我要通过哪个网盘来发给你?
随便吧,理论上这个文件没有多大,以及我没有任何网盘会员。对我来说都一样(