Loading assets by path on runtime on mobile

Im trying to preload some assets before going into game. It seems to work on windows but doesnt run on mobile. Any help is appreciated.

` UGameGlobals* GG = Cast(GEngine->GameSingleton);

if (!GG || !BaseType)
{
	UE_LOG(LogTemp, Error, TEXT("!GG || !BaseType is true"));
	return;
}

if (LoadAssetPaths.Num() <= 0)
{
	UE_LOG(LogTemp, Error, TEXT("LoadAssetPath.IsEmpty is true"));
	return;
}

/*
UObjectLibrary* ObjectLibrary = UObjectLibrary::CreateLibrary(const_cast<UClass*>(BaseType), true, true);
ObjectLibrary->AddToRoot();

ObjectLibrary->LoadAssetDataFromPaths(LoadAssetPaths);
ObjectLibrary->LoadAssetsFromAssetData();

//ObjectLibrary->LoadBlueprintAssetDataFromPath(LoadAssetPath);

TArray<FAssetData> AssetDataLists;
ObjectLibrary->GetAssetDataList(AssetDataLists);

*/
TArray AssetDataLists;

const FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(TEXT("AssetRegistry"));
AssetRegistryModule.Get().SearchAllAssets(false);

TArray<FName> LoadAssetNamePaths;
for(const FString insertPath : LoadAssetPaths)
{
	LoadAssetNamePaths.Add(*insertPath);

}
		

FARFilter Filter;
Filter.bRecursivePaths = true;
Filter.PackagePaths.Append(LoadAssetNamePaths);
Filter.ClassNames.Add(BaseType->GetFName());

AssetRegistryModule.Get().GetAssets(Filter, AssetDataLists);

if (AssetDataLists.Num() <= 0)
{
	UE_LOG(LogTemp, Error, TEXT("AssetDataLists.Num() <= 0 is true"));
	return;
}
/*/
FLoadThreadRunnable* LoadRunable = new FLoadThreadRunnable;

LoadRunable->SetParameter([](TArray<FAssetData> assetList)
{
	UE_LOG(LogTemp, Log, TEXT("Request LoadAsset start!~~~~~~~~~~~~~~~~~~~~~~~~~~AsyncLoadWithPaths!"));
	UGameGlobals* GG = Cast<UGameGlobals>(GEngine->GameSingleton);

	for (FAssetData searchData : assetList)
	{

		UE_LOG(LogTemp, Log, TEXT("Request LoadAssetName = %s"), *searchData.GetFullName());
		if (!searchData.IsAssetLoaded())
		{
			FStringAssetReference LoadAssetRef(searchData.ToStringReference());

			GG->GetLoadStreamManager().RequestAsyncLoad(LoadAssetRef, [searchData]()
			{
				UE_LOG(LogTemp, Log, TEXT("LoadAssetName = %s"), *searchData.GetFullName());
				return;
			});
		}

	}
}, AssetDataLists);

FString ThreadName("LoadRunable_");
ThreadName.AppendInt(LoadThreadCount++);

FRunnableThread* LoadThread = FRunnableThread::Create(LoadRunable, *ThreadName, 0, TPri_Highest);

//LoadRunable->Stop();
LoadThread->WaitForCompletion();

delete LoadThread;
delete LoadRunable;
/*/

for (FAssetData searchData : AssetDataLists)
{

	UE_LOG(LogTemp, Log, TEXT("Request LoadAssetName = %s"), *searchData.GetFullName());
	if (!searchData.IsAssetLoaded())
	{
		FStringAssetReference LoadAssetRef(searchData.ToStringReference());

		GG->GetLoadStreamManager().RequestAsyncLoad(LoadAssetRef, [searchData]()
		{
			UE_LOG(LogTemp, Log, TEXT("LoadAssetName = %s"), *searchData.GetFullName());
			return;
		});
	}

}
//*/

return;

`

sorry how do you format this code to make it better viewable