Description

Note: This does not occur when the nativization mode is set to "Inclusive" in the Project settings.

Current workaround: Ensure that the ChildActor class is NOT a data-only Blueprint, by adding script to an event or function graph, for example.

Steps to Reproduce
  1. Launch UE4 editor with a new, blank C++ project.
  2. Create a new Actor-based Blueprint class (MyChildActorBP) and open it in the BP editor.
  3. Click "Class Settings" and check the "Nativize" button.
  4. Save and close the BP editor.
  5. Create another Actor-based Blueprint class (MyActorBP) and open it in the BP editor.
  6. Add a ChildActor component and set the ChildActor class to MyChildActorBP.
  7. Click "Class Settings" and check the "Nativize" button.
  8. Compile and save, then close the BP editor.
  9. Drag an instance of MyActorBP into the current level.
  10. Save the current level (NewMap).
  11. Go to "Edit->Project Settings..." and Project/Maps & Modes, and under "Default Maps" change both to "NewMap."
  12. Switch to Project/Packaging and change "Blueprint Nativization Method" to "Exclusive."
  13. Close the Project Settings window, and go to "File->Package Project->Windows->Windows (64-bit)"
  14. Choose/create a folder for packaging and accept.
  15. Compile errors should occur during packaging:
UATHelper: Packaging (Windows (64-bit)): xgConsole: MyActorBP__pf1010915279.cpp
UATHelper: Packaging (Windows (64-bit)): xgConsole: D:\dev\Epic\UE4\Dev-Framework\UE_44123_2\Intermediate\Plugins\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private\MyActorBP__pf1010915279.cpp(230): error C2653: 'AMyChildActorBP_C__pf1010915279': is not a class or namespace name
UATHelper: Packaging (Windows (64-bit)): xgConsole: D:\dev\Epic\UE4\Dev-Framework\UE_44123_2\Intermediate\Plugins\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private\MyActorBP__pf1010915279.cpp(256): error C2653: 'AMyChildActorBP_C__pf1010915279': is not a class or namespace name
UATHelper: Packaging (Windows (64-bit)): xgConsole: D:\dev\Epic\UE4\Dev-Framework\UE_44123_2\Intermediate\Plugins\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private\MyActorBP__pf1010915279.cpp(257): error C2653: 'AMyChildActorBP_C__pf1010915279': is not a class or namespace name
UATHelper: Packaging (Windows (64-bit)): xgConsole: D:\dev\Epic\UE4\Dev-Framework\UE_44123_2\Intermediate\Plugins\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private\MyActorBP__pf1010915279.cpp(258): error C2065: 'AMyChildActorBP_C__pf1010915279': undeclared identifier
UATHelper: Packaging (Windows (64-bit)): xgConsole: D:\dev\Epic\UE4\Dev-Framework\UE_44123_2\Intermediate\Plugins\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private\MyActorBP__pf1010915279.cpp(258): error C2653: 'AMyChildActorBP_C__pf1010915279': is not a class or namespace name
UATHelper: Packaging (Windows (64-bit)): xgConsole: D:\dev\Epic\UE4\Dev-Framework\UE_44123_2\Intermediate\Plugins\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private\MyActorBP__pf1010915279.cpp(258): error C2672: 'NewObject': no matching overloaded function found
UATHelper: Packaging (Windows (64-bit)): xgConsole: D:\dev\Epic\UE4\Dev-Framework\UE_44123_2\Intermediate\Plugins\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private\MyActorBP__pf1010915279.cpp(258): error C2974: 'NewObject': invalid template argument for 'T', type expected
UATHelper: Packaging (Windows (64-bit)): xgConsole: d:\dev\epic\ue4\dev-framework\engine\source\runtime\coreuobject\public\UObject/UObjectGlobals.h(1245): note: see declaration of 'NewObject'
UATHelper: Packaging (Windows (64-bit)): xgConsole: D:\dev\Epic\UE4\Dev-Framework\UE_44123_2\Intermediate\Plugins\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private\MyActorBP__pf1010915279.cpp(259): error C3536: '__Local__2': cannot be used before it is initialized
UATHelper: Packaging (Windows (64-bit)): xgConsole: D:\dev\Epic\UE4\Dev-Framework\UE_44123_2\Intermediate\Plugins\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private\MyActorBP__pf1010915279.cpp(259): error C2664: 'int32 TArray<UObject *,FDefaultAllocator>::Add(UObject *const &)': cannot convert argument 1 from 'int' to 'UObject *&&'
UATHelper: Packaging (Windows (64-bit)): xgConsole: D:\dev\Epic\UE4\Dev-Framework\UE_44123_2\Intermediate\Plugins\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private\MyActorBP__pf1010915279.cpp(259): note: Reason: cannot convert from 'int' to 'UObject *'
UATHelper: Packaging (Windows (64-bit)): xgConsole: D:\dev\Epic\UE4\Dev-Framework\UE_44123_2\Intermediate\Plugins\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private\MyActorBP__pf1010915279.cpp(259): note: Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
UATHelper: Packaging (Windows (64-bit)): xgConsole: 
UATHelper: Packaging (Windows (64-bit)): xgConsole: Error executing D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe (tool returned code: 2)

Have Comments or More Details?

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

0
Login to Vote

Fixed
Fix Commit3416425
Main Commit3431398
CreatedApr 20, 2017
ResolvedMay 1, 2017
UpdatedSep 23, 2019