Carla 启动时初始化到75%就崩溃,出现“Fatal error”

先说结论:检查一下Unreal\CarlaUE4\Content\Carla文件夹下的xxx.tar.gz.tar的压缩包是否已经解压。

这几天在Windows上编译Carla的时候出现了问题,在UE4和carla都编译完成后,通过make launch启动,当初始化到75%的时候,显示“UE4-CarlaUE4 Editor 已崩溃“、”Fatal error“。

 根据自己的经验,UE4在启动时,初始化到75%的时候是处于加载插件的时候,所以有可能是某个插件出了问题,在启动时会调用这个插件但是这个插件没有正常安装,导致出错。一般只需要禁用掉出问题的插件就好了。

于是查看Carla的插件文件夹,在carla\Unreal\CarlaUE4\Plugins路劲下:

这时候发现只有两个文件夹,点进去文件夹后找到以.uplugin结尾的文件,以记事本的方式打开:

Carla.uplugin:

CarlaExporter.uplugin:

 可以发现只有两个插件,其中carla插件是正常安装的,CarlaExporter插件没有正常安装。

尝试通过禁用这两个插件来尝试重新启动,参考文章:https://blog.csdn.net/weixin_44052668/article/details/108995612

结果仍然是同样的报错:

 那说明可能不是插件的问题,经验不起作用了,只能实际的去查看到底出了什么问题:

点击提示框的确定后,会自动的把错误报告复制到粘贴版上,我们新建个文本文档,把内容复制上去:

Fatal error!

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000038

0x00007fff02a68305 UE4Editor-Carla.dll!ULoadAssetMaterialsCommandlet::ULoadAssetMaterialsCommandlet() [F:\Carla-Compile\carla\Unreal\CarlaUE4\Plugins\Carla\Source\Carla\Commandlet\LoadAssetMaterialsCommandlet.cpp:37]
0x00007fff4addb4b3 UE4Editor-CoreUObject.dll!UClass::CreateDefaultObject() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\UObject\Class.cpp:3707]
0x00007fff4b09d1de UE4Editor-CoreUObject.dll!UObjectLoadAllCompiledInDefaultProperties() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectBase.cpp:908]
0x00007fff4b0805ff UE4Editor-CoreUObject.dll!ProcessNewlyLoadedUObjects() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectBase.cpp:997]
0x00007fff4afb0765 UE4Editor-CoreUObject.dll!TBaseStaticDelegateInstance<void __cdecl(FName,bool),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:731]
0x00007fff4b73927a UE4Editor-Core.dll!TMulticastDelegate<void __cdecl(FName,bool),FDefaultDelegateUserPolicy>::Broadcast() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:955]
0x00007fff4b760f27 UE4Editor-Core.dll!FModuleManager::LoadModuleWithFailureReason() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\Core\Private\Modules\ModuleManager.cpp:519]
0x00007fff80f1e6d3 UE4Editor-Projects.dll!FModuleDescriptor::LoadModulesForPhase() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\Projects\Private\ModuleDescriptor.cpp:561]
0x00007fff80f3321a UE4Editor-Projects.dll!FPluginManager::TryLoadModulesForPlugin() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\Projects\Private\PluginManager.cpp:1295]
0x00007fff80f1e4d0 UE4Editor-Projects.dll!FPluginManager::LoadModulesForEnabledPlugins() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\Projects\Private\PluginManager.cpp:1369]
0x00007ff678724da7 UE4Editor.exe!FEngineLoop::LoadStartupModules() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:3808]
0x00007ff67872843c UE4Editor.exe!FEngineLoop::PreInitPostStartupScreen() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:3198]
0x00007ff67872094d UE4Editor.exe!GuardedMain() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\Launch\Private\Launch.cpp:127]
0x00007ff678720caa UE4Editor.exe!GuardedMainWrapper() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:137]
0x00007ff678734b8d UE4Editor.exe!WinMain() [F:\Carla-Compile\UnrealEngine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:268]
0x00007ff6787378ea UE4Editor.exe!__scrt_common_main_seh() [D:\a01\_work\9\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
0x00007fffbcfe7034 KERNEL32.DLL!UnknownFunction []
0x00007fffbd7a2651 ntdll.dll!UnknownFunction []

这里显示的一大堆就是程序的调用堆栈,第一行就是程序最后调用的文件:

 根据错误报告,最后引用了一个LoadAssetMaterialsCommandlet.cpp文件,找到这个路径,打开这个文件:

 通过查看源代码,这里给出了很多的路径,所以可以猜测出这个文件所进行的操作是加载许多所需要的资源文件,如地图,材质之类的。

再通过错误报告里提示的37行,应该是调用了RoadPainterBlueprint的类的时候出问题了,这个类的定义在就在上一行可以看到,其中是输入了一串路径作为参数来生成。那这个路径到底存不存在呢?由于这个路径并没有指向根目录在哪里,所以没办法直接找到,但是我们可以通过文件查找工具如everything来帮助我们找到,比如我们搜索LevelDesign这个文件夹 :

 没有在编译版的carla上面找到这个文件夹,倒是在不用编译的release版本上找到了,不过没关系,编译版的carla和不用编译版本的carla文件路径是一样的,进入到编译版本carla的这个文件夹里看一下:

结果发现就只有一个20210730_564bcdc.tar.gz的文件,里面没有任何的文件夹(截图是后面截的),这时候我突然想起来了编译carla时的一个步骤:

当时下载完这个压缩包放到这个路径后,以为只要解压就好了,就用解压工具解压了一下,没有运行命令,结果现在发现这个压缩包是多层压缩,解压完了一层里面还有两层,真是吃了不严格按照步骤的亏。这个压缩包里面就是存放了各种各样的资源,比如地图,材质等等。因为缺少了这些文件,导致每次启动的时候都找不到文件然后报错退出了。

知道问题出现在哪里了,只需要执行命令进行解压就好了,解压完后会多了几个文件夹: 

 这时候再执行make launch运行,耐心等待(我的笔记本启动基本得花个将近10分钟),终于进入到了UE4的编辑窗口:

 总结:在安装一个新项目的时候,一定要严格按照文档来进行安装,不能用理所当然的步骤代替,否则很容易出现没想到的问题;其次是出现问题的时候,效率最高的解决办法就是直接查看源代码的调用来定位问题出现在哪里,但是这个需要代码能力的积累,需要在实际编码中锻炼这个能力

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值