Description

This is due to the UCS-2 encoded UFunction object name passing through UHT into the boilerplate code (*.gen.cpp) that gets generated from the nativized Blueprint's C++ header file.

The issue also occurs when packaging Switch, Linux and iOS targets (when nativization is turned on).

The suggested workaround for 4.18.0 (and prior) is not to use non-ASCII characters in Blueprint Function/Graph names. Variable names, however, should be clear to use non-ASCII characters in 4.18.0 only, as versions prior to 4.18.0 also do not support non-ASCII characters in new Blueprint variable names.

Steps to Reproduce
  1. Make sure dev machine is configured to cook/build Android targets.
  2. Launch UE4 editor w/ a Blank project (C++ or BP doesn't matter).
  3. Add a new Blueprint class (NewBlueprint) and open it in the Blueprint editor.
  4. Add a new Function graph and name it something w/ a non-ASCII character (e.g. "GetТехт")
  5. Compile/save the Blueprint class and close the Blueprint editor.
  6. Choose Edit->Project Settings->Packaging and set Blueprint Nativization Method to "Inclusive."
  7. Choose File->Package Project->Android->Android ETC2. Note that eventually the process will fail with something like the following:
    UATHelper: Packaging (Android (ETC2)):   fatal error: UTF-16 (LE) byte order mark detected in 'D:/dev/local/Epic/Testing/UE_51910/Intermediate/Plugins/NativizedAssets/Android/Game/Intermediate/Build/Android/UE4/Inc/NativizedAssets/NewBlueprint__pf1010915279.gen.cpp', but encoding is not supported
    

Have Comments or More Details?

Head over to the existingAnswerHub thread and let us know what's up.

1
Login to Vote

Unresolved
ComponentGameplay - Blueprint
Affects Versions4.164.174.18
CreatedNov 2, 2017
UpdatedFeb 1, 2019