Description

Note: The same crash will occur if the nativization mode is set to "Inclusive" in the Project settings and if the ChildActor BP class is a data-only Blueprint (i.e. has no script or member variables).

Current workaround: Make sure the ChildActor BP class is both enabled for nativization and is NOT a data-only Blueprint (e.g. - make sure to add some script in either an event or function graph).

Steps to Reproduce
  1. Launch UE4 editor with a new, blank C++ project.
  2. Create a new Actor-based Blueprint class (MyChildActorBP) and save it.
  3. Create another Actor-based Blueprint class (MyActorBP) and open it in the BP editor.
  4. Add a ChildActor component and set the ChildActor class to MyChildActorBP.
  5. Click "Class Settings" and check the "Nativize" button.
  6. Compile and save, then close the BP editor.
  7. Drag an instance of MyActorBP into the current level.
  8. Save the current level (NewMap).
  9. Go to "Edit->Project Settings..." and Project/Maps & Modes, and under "Default Maps" change both to "NewMap."
  10. Switch to Project/Packaging and change "Blueprint Nativization Method" to "Exclusive."
  11. Close the Project Settings window, and go to "File->Package Project->Windows->Windows (64-bit)"
  12. Choose/create a folder for packaging and accept.
  13. Wait for packaging to finish and launch the staged EXE.
  14. A crash should result.

Expected result: No crash upon launching the staged EXE.

Callstack

> UE_44123_2-Win64-Debug.exe!AMyActorBP_C_pf1010915279::_CustomDynamicClassInitialization(UDynamicClass * InDynamicClass) Line 256 C++
UE_44123_2-Win64-Debug.exe!AMyActorBP_C_pf1010915279::AMyActorBP_C_pf1010915279(const FObjectInitializer & ObjectInitializer) Line 223 C++
[External Code]
UE_44123_2-Win64-Debug.exe!UClass::CreateDefaultObject() Line 2687 C++
UE_44123_2-Win64-Debug.exe!UDynamicClass::CreateDefaultObject() Line 4919 C++
UE_44123_2-Win64-Debug.exe!FAsyncPackage::EventDrivenCreateExport(int LocalExportIndex) Line 2992 C++
UE_44123_2-Win64-Debug.exe!FAsyncPackage::ProcessImportsAndExports_Event() Line 3620 C++
UE_44123_2-Win64-Debug.exe!FAsyncPackage::Event_ProcessImportsAndExports() Line 2684 C++
UE_44123_2-Win64-Debug.exe!FAsyncLoadingThread::QueueEvent_ProcessImportsAndExports::__l2::<lambda>(FAsyncLoadEventArgs & Args) Line 2471 C++
UE_44123_2-Win64-Debug.exe!UE4Function_Private::TFunctionRefCaller<void <lambda>(FAsyncLoadEventArgs &),void __cdecl(FAsyncLoadEventArgs & __ptr64)>::Call(void * Obj, FAsyncLoadEventArgs & <Params_0>) Line 245 C++
UE_44123_2-Win64-Debug.exe!FAsyncLoadEventQueue::PopAndExecute(FAsyncLoadEventArgs & Args) Line 102 C++
UE_44123_2-Win64-Debug.exe!FAsyncLoadingThread::ProcessAsyncLoading(int & OutPackagesProcessed, bool bUseTimeLimit, bool bUseFullTimeLimit, float TimeLimit, FFlushTree * FlushTree) Line 4198 C++
UE_44123_2-Win64-Debug.exe!FAsyncLoadingThread::TickAsyncThread(bool bUseTimeLimit, bool bUseFullTimeLimit, float TimeLimit, bool & bDidSomething, FFlushTree * FlushTree) Line 4789 C++
UE_44123_2-Win64-Debug.exe!FAsyncLoadingThread::TickAsyncLoading(bool bUseTimeLimit, bool bUseFullTimeLimit, float TimeLimit, FFlushTree * FlushTree) Line 4548 C++
UE_44123_2-Win64-Debug.exe!FlushAsyncLoading(int PackageID) Line 6494 C++
UE_44123_2-Win64-Debug.exe!LoadPackageInternal(UPackage * InOuter, const wchar_t * InLongPackageNameOrFilename, unsigned int LoadFlags, FLinkerLoad * ImportLinker) Line 1130 C++
UE_44123_2-Win64-Debug.exe!LoadPackage(UPackage * InOuter, const wchar_t * InLongPackageName, unsigned int LoadFlags) Line 1378 C++
UE_44123_2-Win64-Debug.exe!UEngine::LoadMap(FWorldContext & WorldContext, FURL URL, UPendingNetGame * Pending, FString & Error) Line 10066 C++
UE_44123_2-Win64-Debug.exe!UEngine::Browse(FWorldContext & WorldContext, FURL URL, FString & Error) Line 9535 C++
UE_44123_2-Win64-Debug.exe!UGameInstance::StartGameInstance() Line 417 C++
UE_44123_2-Win64-Debug.exe!UGameEngine::Start() Line 644 C++
UE_44123_2-Win64-Debug.exe!FEngineLoop::Init() Line 2611 C++
UE_44123_2-Win64-Debug.exe!EngineInit() Line 52 C++
UE_44123_2-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 153 C++
UE_44123_2-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 199 C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-44213 in the post.

3
Login to Vote

Fixed
Fix Commit3416419
Main Commit3431398
CreatedApr 20, 2017
ResolvedMay 1, 2017
UpdatedMay 12, 2017