src: official unreal engine forum question
https://forums.unrealengine.com/t/5-3-2-packed-android-gps-access-fine-location-not-working/1854054
browse to the internal Unreal Engine Android LocationServicesAndroidImpl
UE 5.4: on my side it is located here: C:\Program Files\Epic Games\UE_5.4\Engine\Plugins\Runtime\LocationServicesAndroidImpl
UE 5.5: on my side it is located here: C:\Program Files\Epic Games\UE_5.5\Engine\Plugins\Runtime\LocationServicesAndroidImpl
copy the whole folder to you projects plugins folder
i.E. C:\temp\<PROJECT_NAME>\Plugins\LocationServicesAndroidImpl
verify that your project has the plugin enabled by open C:\temp\<PROJECT_NAME>\<PROJECT_NAME>.uproject with a text editor
there has to be a entry like this:
{
"Name": "LocationServicesAndroidImpl",
"Enabled": true
}
modifying file LocationServicesAndroidImpl_UPL.xml
FYI: <PROJECT_NAME>\Plugins\LocationServicesAndroidImpl\Source\LocationServicesAndroidImpl\LocationServicesAndroidImpl_UPL.xml
Find the following line and change it from
locationManager.requestLocationUpdates(providerName, (long)LocationServicesUpdateFrequency, LocationServicesMinDistance, LocationListen);
to
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, (long)LocationServicesUpdateFrequency, LocationServicesMinDistance, LocationListen);
FYI: On the file below it is on line 175
modify same file <PROJECT_NAME>\Plugins\LocationServicesAndroidImpl\Source\LocationServicesAndroidImpl\LocationServicesAndroidImpl_UPL.xml
search for line and replace from
activityContext.runOnUiThread(new Runnable()
to
this.runOnUiThread(new Runnable()
FYI: On the file below it is on line 164
Additionally, we needed to add the following permissions to
<PROJECT_NAME>\Plugins\LocationServicesAndroidImpl\Source\LocationServicesAndroidImpl\LocationServicesAndroidImpl_UPL.xml
<addPermission android:name="android.permission.INTERNET"/>
<addPermission android:name="android.permission.ACCESS_WIFI_STATE"/>
<addPermission android:name="android.permission.ACCESS_NETWORK_STATE"/>
FYI: Located at line 33 to 35 on the file below
Please find below the modified LocationServicesAndroidImpl_UPL.xml that we used.
That should act as a good guide when you compare it with a tool to your local version:
After a successful build and start, when the app asks for write permissions, you need to
place a ManifestRequirementsOverride.txt in the following folder: PROJECT_FOLDER\Build\Android\ManifestRequirementsOverride.txt
with the content
Error while packing for android
LogTurnkeySupport: Running Turnkey device detection: ' -ScriptsForProject="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/BlankProject_560.uproject" Turnkey -utf8output -WaitForUATMutex -command=VerifySdk -ReportFilename="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/Intermediate/TurnkeyReport_2.log" -log="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/Intermediate/TurnkeyLog_2.log" -project="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/BlankProject_560.uproject" -Device=Android@avd-Pixel_2_API_30+Android@avd-UE_pixel_6_API_35+Android@avd-Pixel_2_API_34'
LogMonitoredProcess: Running Serialized UAT: [ cmd.exe /c ""C:/Program Files/Epic Games/UE_5.6/Engine/Build/BatchFiles/RunUAT.bat" -ScriptsForProject="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/BlankProject_560.uproject" Turnkey -utf8output -WaitForUATMutex -command=VerifySdk -ReportFilename="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/Intermediate/TurnkeyReport_2.log" -log="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/Intermediate/TurnkeyLog_2.log" -project="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/BlankProject_560.uproject" -Device=Android@avd-Pix
el_2_API_30+Android@avd-UE_pixel_6_API_35+Android@avd-Pixel_2_API_34" -nocompile -nocompileuat ]
LogTurnkeySupport: Completed device detection: Code = 0
LogTurnkeySupport: Turnkey Device: Android@avd-Pixel_2_API_30: (Name=avd-Pixel_2_API_30, Type=, Status=Valid, Allowed=, Current=30, Flags="Device_InstallSoftwareValid")
LogTurnkeySupport: Turnkey Device: Android@avd-UE_pixel_6_API_35: (Name=avd-UE_pixel_6_API_35, Type=, Status=Valid, Allowed=, Current=35, Flags="Device_InstallSoftwareValid")
LogTurnkeySupport: Turnkey Device: Android@avd-Pixel_2_API_34: (Name=avd-Pixel_2_API_34, Type=, Status=Valid, Allowed=, Current=34, Flags="Device_InstallSoftwareValid")
LogDerivedDataCache: C:/Users/TF-CJ/AppData/Local/UnrealEngine/Common/DerivedDataCache: Maintenance finished in +00:00:00.000 and deleted 0 files with total size 0 MiB and 0 empty folders. Scanned 0 files in 1 folders with total size 0 MiB.
LogUObjectHash: Compacting FUObjectHashTables data took 0.54ms
LogTurnkeySupport: Selected target: BlankProject_560
LogLauncherProfile: Unable to use promoted target - ../../../../../../Thoughtfish/git/coalaunrealplugin/BlankProject_560/Binaries/Android/BlankProject_560.target does not exist.
LogMonitoredProcess: Running Serialized UAT: [ cmd.exe /c ""C:/Program Files/Epic Games/UE_5.6/Engine/Build/BatchFiles/RunUAT.bat" -ScriptsForProject="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/BlankProject_560.uproject" Turnkey -command=VerifySdk -platform=Android -UpdateIfNeeded -EditorIO -EditorIOPort=58670 -project="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/BlankProject_560.uproject" BuildCookRun -nop4 -utf8output -nocompileeditor -skipbuildeditor -cook -project="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/BlankProject_560.uproject" -target=BlankProject_
560 -unrealexe="C:\Program Files\Epic Games\UE_5.6\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" -platform=Android -cookflavor=ASTC -installed -stage -archive -package -build -pak -iostore -compressed -prereqs -archivedirectory="C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560" -clientconfig=Development" -nocompile -nocompileuat ]
LogStreaming: Display: FlushAsyncLoading(332): 1 QueuedPackages, 0 AsyncPackages
UATHelper: Packaging (Android (ASTC)): Running AutomationTool...
UATHelper: Packaging (Android (ASTC)): Using bundled DotNet SDK version: 8.0.300 win-x64
UATHelper: Packaging (Android (ASTC)): Starting AutomationTool...
UATHelper: Packaging (Android (ASTC)): Parsing command line: -ScriptsForProject=C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/BlankProject_560.uproject Turnkey -command=VerifySdk -platform=Android -UpdateIfNeeded -EditorIO -EditorIOPort=58670 -project=C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/BlankProject_560.uproject BuildCookRun -nop4 -utf8output -nocompileeditor -skipbuildeditor -cook -project=C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560/BlankProject_560.uproject -target=BlankProject_560 -unrealexe="C:\Program Files\Epic Games\UE_5.6\Engine\Binaries\Win64\Unreal
Editor-Cmd.exe" -platform=Android -cookflavor=ASTC -installed -stage -archive -package -build -pak -iostore -compressed -prereqs -archivedirectory=C:/Thoughtfish/git/coalaunrealplugin/BlankProject_560 -clientconfig=Development -nocompile -nocompileuat
UATHelper: Packaging (Android (ASTC)): Initializing script modules...
UATHelper: Packaging (Android (ASTC)): Total script module initialization time: 0.23 s.
UATHelper: Packaging (Android (ASTC)): Using C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe
UATHelper: Packaging (Android (ASTC)): Executing commands...
UATHelper: Packaging (Android (ASTC)): Installed Sdk validity:
UATHelper: Packaging (Android (ASTC)): Android: (Status=Valid, MinAllowed_Sdk=r25b, MaxAllowed_Sdk=r29, Current_Sdk=r27c, Allowed_AutoSdk=r27c, Current_AutoSdk=, Flags="InstalledSdk_ValidVersionExists, Support_FullSdk, Sdk_HasBestVersion")
UATHelper: Packaging (Android (ASTC)): Scanning for envvar changes...
UATHelper: Packaging (Android (ASTC)): ... done!
UATHelper: Packaging (Android (ASTC)): Cleaning Temp Paths...
UATHelper: Packaging (Android (ASTC)): BUILD SUCCESSFUL
UATHelper: Packaging (Android (ASTC)): Setting up ProjectParams for C:\Thoughtfish\git\coalaunrealplugin\BlankProject_560\BlankProject_560.uproject
UATHelper: Packaging (Android (ASTC)): ********** BUILD COMMAND STARTED **********
UATHelper: Packaging (Android (ASTC)): Running: C:\Program Files\Epic Games\UE_5.6\Engine\Binaries\ThirdParty\DotNet\8.0.300\win-x64\dotnet.exe "C:\Program Files\Epic Games\UE_5.6\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" BlankProject_560 Android Development -Project=C:\Thoughtfish\git\coalaunrealplugin\BlankProject_560\BlankProject_560.uproject -Manifest=C:\Thoughtfish\git\coalaunrealplugin\BlankProject_560\Intermediate\Build\Manifest.xml -remoteini="C:\Thoughtfish\git\coalaunrealplugin\BlankProject_560" -skipdeploy -log="C:\Users\TF-CJ\AppData\Roaming\Unreal Engine\Autom
ationTool\Logs\C+Program+Files+Epic+Games+UE_5.6\UBA-BlankProject_560-Android-Development.txt"
UATHelper: Packaging (Android (ASTC)): Log file: C:\Users\TF-CJ\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_5.6\UBA-BlankProject_560-Android-Development.txt
UATHelper: Packaging (Android (ASTC)): Using 'git status' to determine working set for adaptive non-unity build (C:\Thoughtfish\git\coalaunrealplugin).
UATHelper: Packaging (Android (ASTC)): Creating makefile for BlankProject_560 (no existing makefile)
UATHelper: Packaging (Android (ASTC)): Android (12470979, based on r522817c) clang version 18.0.3 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)
UATHelper: Packaging (Android (ASTC)): Target: x86_64-w64-windows-gnu
UATHelper: Packaging (Android (ASTC)): Thread model: posix
UATHelper: Packaging (Android (ASTC)): InstalledDir: C:/Users/TF-CJ/AppData/Local/Android/Sdk/ndk/27.2.12479018/toolchains/llvm/prebuilt/windows-x86_64/bin
UATHelper: Packaging (Android (ASTC)): Android (12470979, based on r522817c) clang version 18.0.3 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)
UATHelper: Packaging (Android (ASTC)): Target: x86_64-w64-windows-gnu
UATHelper: Packaging (Android (ASTC)): Thread model: posix
UATHelper: Packaging (Android (ASTC)): InstalledDir: C:/Users/TF-CJ/AppData/Local/Android/Sdk/ndk/27.2.12479018/toolchains/llvm/prebuilt/windows-x86_64/bin
UATHelper: Packaging (Android (ASTC)): NDK toolchain: r27c, NDK version: 270300, ClangVersion: 18.0.3
UATHelper: Packaging (Android (ASTC)): Parsing headers for BlankProject_560
UATHelper: Packaging (Android (ASTC)): Running Internal UnrealHeaderTool C:\Thoughtfish\git\coalaunrealplugin\BlankProject_560\BlankProject_560.uproject C:\Thoughtfish\git\coalaunrealplugin\BlankProject_560\Intermediate\Build\Android\BlankProject_560\Development\BlankProject_560.uhtmanifest -WarningsAsErrors -installed
UATHelper: Packaging (Android (ASTC)): Total of 176 written
UATHelper: Packaging (Android (ASTC)): Reflection code generated for BlankProject_560 in 1.6656458 seconds
UATHelper: Packaging (Android (ASTC)): Compiling Native 64-bit code with NDK API 'android-27'
UATHelper: Packaging (Android (ASTC)): Unhandled exception: DirectoryNotFoundException: Could not find a part of the path 'C:\Thoughtfish\git\coalaunrealplugin\BlankProject_560\Intermediate\Build\Android\a\BlankProject_560\Development\ExportSymbols.ldscript'.
UATHelper: Packaging (Android (ASTC)): at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
UATHelper: Packaging (Android (ASTC)): at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
UATHelper: Packaging (Android (ASTC)): at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
UATHelper: Packaging (Android (ASTC)): at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
UATHelper: Packaging (Android (ASTC)): at System.IO.StreamWriter.ValidateArgsAndOpenPath(String path, Boolean append, Encoding encoding, Int32 bufferSize)
UATHelper: Packaging (Android (ASTC)): at System.IO.File.CreateText(String path)
UATHelper: Packaging (Android (ASTC)): at UnrealBuildTool.AndroidToolChain.GetLinkArguments(LinkEnvironment LinkEnvironment, UnrealArch Architecture) in D:\build\++UE5\Sync\Engine\Source\Programs\UnrealBuildTool\Platform\Android\AndroidToolChain.cs:line 789
UATHelper: Packaging (Android (ASTC)): at UnrealBuildTool.AndroidToolChain.LinkFiles(LinkEnvironment LinkEnvironment, Boolean bBuildImportLibraryOnly, IActionGraphBuilder Graph) in D:\build\++UE5\Sync\Engine\Source\Programs\UnrealBuildTool\Platform\Android\AndroidToolChain.cs:line 1156
UATHelper: Packaging (Android (ASTC)): at UnrealBuildTool.UEToolChain.LinkAllFiles(LinkEnvironment LinkEnvironment, Boolean bBuildImportLibraryOnly, IActionGraphBuilder Graph) in D:\build\++UE5\Sync\Engine\Source\Programs\UnrealBuildTool\ToolChain\UEToolChain.cs:line 243
UATHelper: Packaging (Android (ASTC)): at UnrealBuildTool.UEBuildBinary.Build(ReadOnlyTargetRules Target, UEToolChain ToolChain, CppCompileEnvironment CompileEnvironment, LinkEnvironment LinkEnvironment, ISourceFileWorkingSet WorkingSet, DirectoryReference ExeDir, IActionGraphBuilder Graph, ILogger Logger) in D:\build\++UE5\Sync\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildBinary.cs:line 325
UATHelper: Packaging (Android (ASTC)): at UnrealBuildTool.UEBuildTarget.BuildAsync(BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, TargetDescriptor TargetDescriptor, ILogger Logger, Boolean bInitOnly) in D:\build\++UE5\Sync\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 2663
UATHelper: Packaging (Android (ASTC)): at UnrealBuildTool.BuildMode.CreateMakefileAsync(BuildConfiguration BuildConfiguration, TargetDescriptor TargetDescriptor, ISourceFileWorkingSet WorkingSet, ILogger Logger) in D:\build\++UE5\Sync\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 1131
UATHelper: Packaging (Android (ASTC)): at UnrealBuildTool.BuildMode.BuildAsync(List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger, Boolean bSkipPreBuildTargets, String ActionTypeFilter) in D:\build\++UE5\Sync\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 402
UATHelper: Packaging (Android (ASTC)): at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in D:\build\++UE5\Sync\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 253
UATHelper: Packaging (Android (ASTC)): at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in D:\build\++UE5\Sync\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.cs:line 653
UATHelper: Packaging (Android (ASTC)): Result: Failed (OtherCompilationError)
UATHelper: Packaging (Android (ASTC)): Total execution time: 4.86 seconds
UATHelper: Packaging (Android (ASTC)): Took 4,95s to run dotnet.exe, ExitCode=6
UATHelper: Packaging (Android (ASTC)): UnrealBuildTool failed. See log for more details. (C:\Users\TF-CJ\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_5.6\UBA-BlankProject_560-Android-Development.txt)
UATHelper: Packaging (Android (ASTC)): AutomationTool executed for 0h 0m 6s
UATHelper: Packaging (Android (ASTC)): AutomationTool exiting with ExitCode=6 (6)
UATHelper: Packaging (Android (ASTC)): BUILD FAILED
LogStreaming: Display: FlushAsyncLoading(333): 1 QueuedPackages, 0 AsyncPackages
PackagingResults: Error: Unknown Error
The following steps should resolve this issue:
Create a new empty UnrealEngine 5.6 project and pack an empty game for android. The goal is to verify that the UnrealEngine project is configured correctly and the SDK, NDK, and JD are working as intended
If this works, you need to migrate your project to UnrealEngine 5.6 manually
By looking at the following error line from above
UATHelper: Packaging (Android (ASTC)): Unhandled exception: DirectoryNotFoundException: Could not find a part of the path 'C:\Thoughtfish\git\coalaunrealplugin\BlankProject_560\Intermediate\Build\Android\a\BlankProject_560\Development\ExportSymbols.ldscript'.
we had to create this 2nd folder by hand
UATHelper: Packaging (Android (ASTC)): Unhandled exception: DirectoryNotFoundException: Could not find a part of the path 'C:\Thoughtfish\git\coalaunrealplugin\BlankProject_560\Intermediate\Build\Android\a\BlankProject_560\Development\ExportSymbols.ldscript'.
You need to adjust this to your matching error, for us it was
UATHelper: Packaging (Android (ASTC)): Unhandled exception: DirectoryNotFoundException: Could not find a part of the path 'C:\Thoughtfish\git\coalaunrealplugin\BlankProject_560\Intermediate\Build\Android\a\<PROJECT_NAME>\<CONFIGURATION>\ExportSymbols.ldscript'.