LoadANSITextFileToStrings problem on Android


I have a game compiling and running on Android.
In my “Content” folder, I have some resources, including some simple text files (with .sm extension instead of .txt).
These files get packed in the .obb file when I make a package.

To open one of the text files in my cpp code, I do like this:

FString filePath = (FPaths::GameContentDir() + FString("Songs/") + FString(SongFiles[(uint8)(_pGameSettings->SongName)].pFileName) + "/" + FString(SongFiles[(uint8)(_pGameSettings->SongName)].pFileName) + ".sm");

UE_LOG(LogTemp, Log, TEXT("Trying to load song file %s"), *filePath);

TArray<FString> lines;

if(!(FFileHelper::LoadANSITextFileToStrings(*filePath, NULL, lines)))
	UE_LOG(LogTemp, Log, TEXT("LOAD FAILED!"));
	return false;

The LoadANSITextFileToStrings() function seems to find the file, deals with it and return true.
The problem is that even if the file length returned by the file system is correct, the data pointed by the buffer seems incorrect!
Normally, at this address I should see the first line of the content of my text file, but instead I see some random binary values (the buffer starts with the “PK” bytes, then it’s random stuff…).
It’s like the offset in the .obb files computed by the file archive system is incorrect.
Of course, this leads my “lines” TArray to contains wrong data, and my code further to fail to parse the file.

Do you have any idea on what’s wrong with my code here? Maybe I should use another function on Android?
This code works well on Windows platform,

I already had this problem on UE 4.9, I upgraded to 4.11 but it’s the same :confused:

Thanks for any help!