问题
编译报错:
2>UnrealBuildTool: Error : Unable to instantiate module 'MyGameSDK': System.NullReferenceException: 未将对象引用设置到对象的实例。
在 MyGameSDK..ctor(ReadOnlyTargetRules Target) 位置 g:\ST6\MyGameMSource\Plugins\MyGameSDK\Source\MyGameSDK\MyGameSDK.Build.cs:行号 55
(referenced via MyGame.uproject -> MyGameSDK.uplugin)
2>Microsoft.MakeFile.Targets(45,5): Error MSB3075 : 命令“G:\ST6\EngineSource\Engine\Build\BatchFiles\Build.bat -Target="MyGameEditor Win64 Development -Project=\"G:\ST6\MyGameMSource\MyGame.uproject\"" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild”已退出,代码为 5。请验证您是否拥有运行此命令的足够权限。
尝试解决
它是 C# 中常见的错误,表示你尝试调用一个未初始化的对象(即为 null
)的成员,而该对象没有被正确实例化。要解决此问题,需要检查代码,确保在调用对象方法或属性之前,该对象已经被正确创建并赋值。首先尝试绕开错误代码,但最后发现,是某些变量没有值,导致的,最后才查到是Config配置文件没有拉。下面是细节:
尝试在 G:\ST6\MyGameMSource\MyGame.uproject 修改后:
{
"Name": "MyGameSDK",
"Enabled": false,
"WhitelistPlatforms": [
"Win32",
"Win64"
]
},
又有下一个deeplink 报错 了。再下一个是 XXPermission 插件。
八清理,即六清(Engine和项目的 Intermediate、Saved、DDC )的基础上,将 binaries 也都给删除、重拉binaries(引擎)、Generate、Setup、Switch、重启电脑,重编还是遇到同样问题。
MSVC latest 要选上,以及 19041 也要带上(我的工程的要求) ,然后再尝试。
最终结论
最后是 {项目}/Config 没有拉齐导致的,拉齐后继续编译,解决。