x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Unreal 4.16.1 debug game build error: ICU data directory was not discovered

Hi, I have updated to latest Unreal version 4.16.1 and now the debug of a game build does not work anymore. Tried it with a clean c++ starter project.

 Exception thrown at 0x00007FFF70729E08 in MyProject-Win64-DebugGame.exe: Microsoft C++ exception: xSharedMemoryException at memory location 0x000000394C6CEDC0.
 Assertion failed: HasFoundDataDirectory [File:D:\Build\++UE4+Release-4.16+Compile\Sync\Engine\Source\Runtime\Core\Private\Internationalization\ICUInternationalization.cpp] [Line: 128] 
 ICU data directory was not discovered:
 ../../../MyProject/Content/Internationalization
 ../../../Engine/Content/Internationalization
 MyProject-Win64-DebugGame.exe has triggered a breakpoint.

Can someone confirm this problem?

Steps to reproduce:

  1. Use unreal engine 4.16.1

  2. Create a new C++ Basic Code Project

  3. Try to debug a 'GameBuild' with Visual Studio Community 2015 (14.0.25431.01 Update 3)

  4. Break point triggered in C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\vcruntime\exe_common.inl line 253 at int const main_result=invoke_main();

Greets

Product Version: UE 4.16
Tags:
more ▼

asked Jun 02 '17 at 11:19 AM in Bug Reports

avatar image

solarisx
63 4 8 13

avatar image theonecalledtom Jun 05 '17 at 04:02 PM

You're the second thread I've seen with this.

https://answers.unrealengine.com/questions/617483/crash-ficuinternationalization.html

@WoodsShin

Suggest one of you move's to Bug Reports.

Other thought - did you try deleting the Saved and Intermediate folders to force a full rebuild of the packages?

avatar image theonecalledtom Jun 05 '17 at 04:52 PM

Upgraded a project to 16.1 and confirmed same behavior - event after deleting the above folders.

avatar image theonecalledtom Jun 05 '17 at 04:54 PM

The packaged build does run though.

avatar image BigaCubensis Jul 02 '17 at 09:21 AM

Updated to 4.16.2 but same error message, despite UE-45748 shows it fixed. It isnt... :(

avatar image TheJamsh Jul 11 '17 at 10:44 AM

Still experiencing this problem in 4.16.2, both on Windows and on PS4.

My engine version is built from source code, but it also occurs in Binary Builds.

avatar image wahtman Oct 31 '17 at 09:17 AM

I'm also getting this error Debug on ipad pro with 4.17, why`````。

avatar image DNT_Volterino Dec 27 '17 at 12:38 PM

HI guys, I have always this probleme in Unreal Engine 4.17. It's not possible i think. Please Help me

avatar image SebaSopp Aug 01 '18 at 10:40 AM

This is still not working on my Mac Project with 4.17.2. I am not able to debug because FPaths::GameContentDir() and FPaths::EngineContentDir() are pointing to wrong directories. In Development Mode both functions pointing to the wright directories.

Definitions.Add("UE_ENGINE_DIRECTORY= 'PATH TO ENGINE' "); to build.cs is not helping. Any other workaround available?

avatar image Albatros Feb 20 '19 at 01:43 PM

Hey guys,

This issue unfortunately still persists in 4.21.2.

We have cooked a standalone build for a VR-project of ours.

Locally (on the machine it was cooked on) it's running fine, as well as on our other workstations and home office machines.

However, on the two brand new machines (MSI ROG with 1070 GTXs) of our client, the same standalone will crash with the same Fatal Error - due to ICU Internationalization folder not being found.

Those two machines are running Windows 10 Home (all other machines Win 7, 8.1, 10 Professional, respectively).

Running editor versions of the cooked build is no problem at all.

We have already tried installing VS on those machines as well as the UE4 depencies for 64 bit, but to no avail.

Can anyone help us shedding some light on this?

Best regards,

Til

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

4 answers: sort voted first

Any workaround?

Ok, the workaround is to define UE_ENGINE_DIRECTORY in your pch header. In my case it looks like this:

 #define UE_ENGINE_DIRECTORY ../../../Epic Games/UE_4.16/Engine/

The project folder and Epic Games folder are siblings.

more ▼

answered Jun 08 '17 at 10:55 AM

avatar image

ShiftZ
41 2 5 8

avatar image marineuac Jun 24 '17 at 03:05 AM

can you explain how to use? my engine is in D:\NET\UE_4.16\Engine but my project is in C:\NET\project do i still type ../../../ ??

avatar image ShiftZ Jul 01 '17 at 08:15 PM

Have you tried full path to UE_4.16/Engine/ directory?

avatar image TheJamsh Jul 11 '17 at 10:48 AM

@ShiftZ - where are you adding that define? in your project main header?

For example, my main project header is ECGame.h - Should we put it there?

avatar image Stephan.Menzel Jul 11 '17 at 10:51 AM

I was only successful putting it into the build.cs. Like that:

 Definitions.Add("UE_ENGINE_DIRECTORY=d:/Unreal/Epic Games/UE_4.16/Engine/");

Having it in the PCH or some other header didn't do the trick here.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

This is still not working on my Mac Project with 4.17.2. I am not able to debug because FPaths::GameContentDir() and FPaths::EngineContentDir() are pointing to wrong directories. In Development Mode both functions pointing to the wright directories.

more ▼

answered Aug 01 '18 at 10:38 AM

avatar image

SebaSopp
91 3 5 17

avatar image Arkady.English Aug 16 '18 at 01:03 PM

I'm also having this problem trying to set up for Mac.

I tried looking at the bug report, and seeing what they did to fix it, but all the links are dead.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

Hi solarisx,

Thanks for letting us know about this. I was able to reproduce this issue, but it is apparently only limited to binary installations of the Engine. When I tested with an Engine I had built from source code, I was able to debug the project successfully. I have entered UE-45748 to have this investigated further.

Tim

more ▼

answered Jun 06 '17 at 07:48 PM

avatar image TheJamsh Jun 22 '17 at 12:38 PM

Hi Tim,

This says that it was fixed in 4.16.1 - but I'm still having this issue.

avatar image dorgon chang Jun 23 '17 at 04:21 AM

I still having this issue too, in 4.16.1

avatar image marineuac Jun 24 '17 at 02:47 AM

4.16.1 binary from launcher still same problem

avatar image Stephan.Menzel Jun 28 '17 at 07:49 AM

Just for the record: Same on all machines here with binary 4.16.1. This should not be marked fixed unless it actually is. Sadly, the workaround doesn't yet do the trick for me either.

From my investigation, the issue is a little broader and not restricted to ICU. I have managed to trick a debug game into finding ICUs content dir by copying the Internationalization folder into the game's content. Yeah, I know... Anyway, after that the initialization phase skipped with that:

Fatal error: [File:D:\Build\++UE4+Release-4.16+Compile\Sync\Engine\Source\Runtime\Engine\Private\PhysicsEngine\PhysXLibs.cpp] [Line: 87] Failed to load module '../../../Engine/Binaries/ThirdParty/PhysX/Win64/VS2015/PxFoundationPROFILE_x64.dll'.

Which means the next dynamically loaded module also wasn't found. I believe the reason is that FPaths::GameContentDir() and FPaths::EngineContentDir() don't seem to work in debug builds, causing all those subsequent errors.

avatar image TheJamsh Jul 11 '17 at 10:47 AM

Tim,

I'm still getting this in 4.16.2, and I'm using a Source Engine Build and Binary Builds. The issue is most definitely not fixed!

avatar image Tim C ♦♦ STAFF Jul 11 '17 at 02:29 PM

Hi TheJamsh,

Our repro for UE-45748 no longer results in this issue in 4.16.2. Do you have a different repro where you are still seeing the issue occur?

Tim

avatar image TheJamsh Jul 17 '17 at 07:42 AM

Hi Tim,

Yeah I'm trying to launch DebugGame on PS4 in 4.16.2 and getting the same error!

avatar image TheJamsh Sep 07 '17 at 12:41 PM

Still getting this issue in 4.17.1 on PS4, and haven't heard anything back...

avatar image Tim C ♦♦ STAFF Sep 12 '17 at 05:24 PM

We are no longer running into this issue on Windows with our prior repro steps. I will see if I can get some testing on a PS4 done to try to repro it there.

Tim

avatar image jiangdengc Sep 15 '17 at 09:39 AM

I also encountered this issue in ue4 17.1 on PS4 00:08:15 Assertion failed: HasFoundDataDirectory [File:D:\UE4_Source\UnrealEngine4_17\Engine\Source\Runtime\Core\Private\Internationalization\ICUInternationalization.cpp] [Li 00:08:15 ne: 128] 00:08:15 ICU data directory was not discovered: 00:08:15 ../../../abyss/Content/Internationalization 00:08:15 ../../../engine/Content/Internationalization[Callstack] 0x006159fd - FInternationalization::Get() 00:08:15 [Callstack] 0x00662084 - FTextFormatter::FormatStr(FTextFormat const&, TArray const&, bool, bool) 00:08:15 [Callstack] 0x00661dc4 - FTextFormatter::Format(FTextFormat&&, TArray &&, bool, bool) 00:08:15 [Callstack] 0x0063e14d - FText::Format(FTextFormat, FFormatArgumentValue) 00:08:15 [Callstack] 0x009097eb - FProjectDescriptor::Load(FString const&, FText&) 00:08:15 [Callstack] 0x0090c089 - FProjectManager::LoadProjectFile(FString const&) 00:08:15 [Callstack] 0x004072b0 - FEngineLoop::PreInit(wchar_t const*) 00:08:15 [Callstack] 0x004058cf - FEngineLoop::PreInit(int, wchar_t* , wchar_t const) 00:08:15 [Callstack] 0x00421640 - tchar_main(int, wchar_t**) 00:08:15 [Callstack] 0x00420b61 - main 00:08:15 [Callstack] 0x0400c7fb - _start

avatar image ZeJudge Oct 02 '17 at 05:54 PM

I am also experiencing this issue when running DebugGame on PS4. I included more information from my log in the PS4 forum: link text

avatar image Chris Payne Jan 26 '18 at 10:44 AM

Any movement on this? I have the same issue running a Debug build on PS4 with 4.18...

Additional info...the path provided is "../../../engine/Content/Internationalisation" ...which gets converted by FPS4PlatformFile::NormalizeFilename() into "/data/mygamename/engine/content/internationalisation" by the shortening logic - so that looks obviously wrong. I haven't been able to successfully debug through the optimised DebugGame build (which works) to see why that succeeds...

avatar image Tim C ♦♦ STAFF Jun 07 '18 at 06:55 PM

I took another look at this today in 4.18.3, and was able to successfully run both a Debug and a DebugGame build on a dev kit from within Visual Studio. Is this still something that is giving you trouble? Are you able to launch the game onto a dev kit from within the Editor?

Tim

avatar image virtual_nomak Jun 13 '18 at 02:12 PM

Hi Tim, I was building from source and got this issue on 4.19.2 using Debug and Development mode on XboxOne, I cannot launch the game, I will try the workaround mentioned below.

The problem lies on FICUInternationalization::Initialize() bool HasFoundDataDirectory = false; for(const auto& DataDirectoryString : PotentialDataDirectories) { if( FileManager.DirectoryExists( *DataDirectoryString ) ) { u_setDataDirectory( StringCast( *DataDirectoryString ).Get() ); HasFoundDataDirectory = true; break; } }

Where PotentialDataDirectories: L"../../../FallenOne/Content/Internationalization" L"../../../Engine/Content/Internationalization"

My files are on: FallenOne sits on C:\UE4\FallenOne Engine on C:\UE4\VanillaEngine\UnrealEngine\Engine

Here is the callstack: > FallenOne-XboxOne-Debug.exe!FICUInternationalization::Initialize() Line 129 C++ FallenOne-XboxOne-Debug.exe!FInternationalization::Initialize() Line 274 C++ FallenOne-XboxOne-Debug.exe!FInternationalization::Get() Line 30 C++ FallenOne-XboxOne-Debug.exe!FTextFormatter::FormatStr(const FTextFormat & InFmt, const TArray & InArguments, const bool bInRebuildText, const bool bInRebuildAsSource) Line 904 C++ FallenOne-XboxOne-Debug.exe!FTextFormatter::Format(FTextFormat && InFmt, TArray && InArguments, const bool bInRebuildText, const bool bInRebuildAsSource) Line 855 C++ FallenOne-XboxOne-Debug.exe!FText::Format(FTextFormat Fmt, FFormatArgumentValue v1) Line 444 C++ FallenOne-XboxOne-Debug.exe!FProjectDescriptor::Load(const FString & FileName, FText & OutFailReason) Line 64 C++ FallenOne-XboxOne-Debug.exe!FProjectManager::LoadProjectFile(const FString & InProjectFile) Line 33 C++ FallenOne-XboxOne-Debug.exe!FEngineLoop::PreInit(const wchar_t CmdLine) Line 1390 C++ FallenOne-XboxOne-Debug.exe!EnginePreInit(const wchar_t CmdLine) Line 689 C++

avatar image virtual_nomak Jun 13 '18 at 03:07 PM

Also put the project folder into the same UE4 folder and compiled the project to get this error message:

Sandbox filewrapper tried to access project path before it was set

Update: got it working, my issue was the way I was using the cooker on the fly, you need to launch it with your project name or the path to the .uproject file https://docs.unrealengine.com/en-us/Engine/Deployment/Cooking

avatar image SamClarkSimBin Jul 27 '17 at 11:01 AM

I'm also getting this error trying to launch DebugGame on Xbox One with a source build of 4.16.2

avatar image DOMYNYO Dec 08 '18 at 05:49 PM

I am having this issue on 4.20.3 both with Ue4 and Ue4 source

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

Not working on 4.21.2 macOS. Neither binary vs source nor Xcode vs VS Code helps. Let's play spot the bug: Engine/Source/Programs/UnrealBuildTool/Configuration/UEBuildTarget.cs

 string OutputFilePath = ExecutableBinary.OutputFilePath.FullName;
 if (Platform == UnrealTargetPlatform.Mac && OutputFilePath.Contains(".app/Contents/MacOS"))
 {
     OutputFilePath = OutputFilePath.Substring(0, OutputFilePath.LastIndexOf(".app/Contents/MacOS") + 4);
 }
 string EnginePath = Utils.CleanDirectorySeparators(UnrealBuildTool.EngineDirectory.MakeRelativeTo(ExecutableBinary.OutputFilePath.Directory), '/');
 if (EnginePath.EndsWith("/") == false)
 {
     EnginePath += "/";
 }
 GlobalCompileEnvironment.Definitions.Add(String.Format("UE_ENGINE_DIRECTORY=\"{0}\"", EnginePath));

There's a corner case check for OSX bundles (though in a hacky way, but it's fine), which strips off Contents/MacOS and assigns it to OutputFilePath. However, OutputFilePath is not accessed again, causing UE_ENGINE_DIRECTORY to be set to relative to the binary's location in the bundle :/

  • Engine/Source/Runtime/Core/Private/Mac/MacPlatformProcess.cpp sets the working directory to project-root/Binaries/Mac.

  • When checking for the EngineDir in Engine/Source/Runtime/Core/Private/GenericPlatform/GenericPlatformMisc.cpp, it will check the default ../../../Engine (works fine in fully packaged builds due to some magic), then what UE_ENGINE_DIRECTORY is set to, which is relative to project-root/Binaries/Mac/project.app/Contents/MacOS, not project-root/Binaries/Mac.

Which also means there's a second bug here: chopping off Contents/MacOS still leaves us a directory higher than what UE_ENGINE_DIRECTORY needs to be set to. Aka UE_ENGINE_DIRECTORY would be relative to project-root/Binaries/Mac/project.app if not for bug #1, but regardless needs to relative to project-root/Binaries/Mac.

The commits, at least on the Release branch, are squashed, but I suspect this is the breaking change:

Change 3378297 on 2017/04/04 by Graeme.Thornton

Fix incorrect generation of UE_ENGINE_DIRECTORY in UBT

Maybe not that fixed. That said, it was likely broken beforehand, and I suspect macOS no-editor debugging has never worked out of the box in UE4. I'll also note UE4's "where do I find stuff" logic feels super rickety and is spread out across way too many places and I'm surprised things don't break constantly for no reason. Then again - maybe they do.

Here's a possible fixed version, though it needs a bit more testing. Doesn't break on the ICU data directories, but doesn't find the cooked content unless I explicitly set it with -Sandbox="/Saved/Cooked/MacNoEditor" - suspect there's similar issues with how project dirs are set. If you want to try it, I suggest applying the attached patch file with git apply filename-of-the-attached.patch from the root of a UnrealEngine source checkout. Changed code snippet for reference:

 // The hardcoded engine directory needs to be a relative path to match the normal EngineDir format. Not doing so breaks the network file system (TTP#315861).
 DirectoryReference EngineDirectory = ExecutableBinary.OutputFilePath.Directory;
 if (Platform == UnrealTargetPlatform.Mac && EngineDirectory.FullName.Contains(".app/Contents/MacOS"))
 {
     EngineDirectory = EngineDirectory.ParentDirectory.ParentDirectory.ParentDirectory;
 }
 string EnginePath = Utils.CleanDirectorySeparators(UnrealBuildTool.EngineDirectory.MakeRelativeTo(EngineDirectory), '/');
 if (EnginePath.EndsWith("/") == false)
 {
     EnginePath += "/";
 }
 GlobalCompileEnvironment.Definitions.Add(String.Format("UE_ENGINE_DIRECTORY=\"{0}\"", EnginePath));

Engine/Source/Programs/UnrealBuildTool has a C# Visual Studio project file, compile that (probably on a Windows machine sry) and you should be able to drop the four Engine/Binaries/DotNET/UnrealBuildTool.* files it into the corresponding directory on a macOS UE installation. Note that a normal build of Unreal Engine won't apply this.

Git patch, might need to rename to file.patch instead of .txt

more ▼

answered Feb 11 '19 at 02:51 PM

avatar image

Bryan DeGrendel
1 2

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question