Description

See https://github.com/EpicGames/UnrealEngine/pull/6510 (shelved in CL 10874589)

Modified Files:

//UE4/Release-4.24/Engine/Source/Programs/UnrealBuildTool/Platform/Android/AndroidToolChain.cs (edit)

The support team will close the pull request when this ticket is marked fixed. Please include a #6510 tag somewhere in the description of any p4 changelists related to this pull request, so that GitHub can cross-reference it.

Steps to Reproduce

Additional info and repro steps from user:

UnrealBuildTool uses PLATFORM_ANDROID_NDK_VERSION string to check the Android NDK version. PLATFORM_ANDROID_NDK_VERSION has the form 150100, where 15 is major version, 01 is the letter (1 is 'a'), 00 indicates beta revision if letter is 00 (see AndroidPlatform.SetUpSpecificEnvironment() in /Engine/Source/Programs/UnrealBuildTool/Platform/Android/UEBuildAndroid.cs file).

 

Android NDK's source.properties file on the other hand uses the form 15.0.0000000, where 15 is major version, 0 is the letter (0 is 'a' here NOT 1), 0000000 indicates revision/build number (see <ANDROID_NDK_ROOT>/source.properties file).

 

It seems this distinction couses bugs in Engine/Source/Programs/UnrealBuildTool/Platform/Android/AndroidToolChain.cs file. The minimum and recommended versions are declared as 140100 which assumes r14b but actually means r14a. The maximum version is declared as 180100 which assumes r18b but actually means r18a. Futher, NDK r18 is actually not supported by Unreal Engine because it lacks GCC and gnustl! So the right maximum version is 170300 which actually means r17c.

 

For the right version notation see AndroidPlatform.SetUpSpecificEnvironment() in /Engine/Source/Programs/UnrealBuildTool/Platform/Android/UEBuildAndroid.cs file. For the actual supported versions see: - NDK Revision History at [Link Removed] - Unreal Engine Release Notes at https://docs.unrealengine.com/en-US/Support/Builds/ReleaseNotes/4_24/index.html - Android Development Requirements at https://docs.unrealengine.com/en-US/Platforms/Mobile/Android/AndroidSDKRequirements/index.html

 

As I can see you also need to update the following documentation pages because they mention obsolete Android NDK versions (12b and even 11c): - https://docs.unrealengine.com/en-US/Platforms/Mobile/Android/Reference/index.html - https://docs.unrealengine.com/en-US/Platforms/VR/GoogleVR/Daydream/index.html

Repro: Try to build a C++ project with any Android NDK version (supported or not supported) using Project Launcher's profile

Results: 1. Current Android NDK version will be displayed incorrectly, ex. r17b instead of actually used r17c (if supported) 2. Maximum supported Android NDK version will be displayed incorrectly in error message (if current Android NDK version is NOT supported)

 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to AnswerHub just mention UE-86211 in the post.

2
Login to Vote

Fixed
ComponentPlatform - Mobile
Target Fix4.25
Fix Commit11555526
Main Commit11577233
Release Commit11555526
CreatedJan 3, 2020
ResolvedFeb 19, 2020
UpdatedMar 30, 2021