[android_compat_fixes] added support for versioned Android 'cmdline-tools' (the 'tools' replacement)
Signed-off-by: AMZN-ScottR <24445312+AMZN-ScottR@users.noreply.github.com>
This commit is contained in:
@@ -1548,17 +1548,32 @@ class AndroidSDKResolver(object):
|
||||
self.version = LooseVersion(available_update_components[1])
|
||||
self.available = available_update_components[2]
|
||||
|
||||
def __init__(self, android_sdk_path):
|
||||
def __init__(self, android_sdk_path, command_line_tools_version):
|
||||
|
||||
self.android_sdk_path = android_sdk_path or os.environ.get(ANDROID_SDK_ENV_NAME)
|
||||
if not self.android_sdk_path:
|
||||
raise common.LmbrCmdError(f"Android SDK path not set or it was not passed into the command to generate the android project")
|
||||
if not os.path.isdir(self.android_sdk_path):
|
||||
raise common.LmbrCmdError(f"Android SDK path {self.android_sdk_path} is not valid")
|
||||
|
||||
sdk_root = pathlib.Path(self.android_sdk_path)
|
||||
|
||||
tools_path = sdk_root / 'cmdline-tools'
|
||||
if tools_path.exists():
|
||||
tools_path = tools_path / command_line_tools_version
|
||||
if not tools_path.exists():
|
||||
raise common.LmbrCmdError(f"The desired version of the Android 'cmdline-tools' ({command_line_tools_version}) is not detected")
|
||||
else:
|
||||
tools_path = sdk_root / 'tools'
|
||||
|
||||
ext = ''
|
||||
if platform.system() == 'Windows':
|
||||
self.sdk_manager_path = pathlib.Path(self.android_sdk_path) / 'tools' / 'bin' / 'sdkmanager.bat'
|
||||
ext = '.bat'
|
||||
else:
|
||||
raise common.LmbrCmdError(f"This tool is not supported on the current platform {platform.system()}")
|
||||
|
||||
self.sdk_manager_path = tools_path / 'bin' / f'sdkmanager{ext}'
|
||||
|
||||
if not self.sdk_manager_path.is_file():
|
||||
raise common.LmbrCmdError(f"Android SDK path {self.android_sdk_path} is not valid or complete. Missing {self.sdk_manager_path}")
|
||||
|
||||
|
||||
@@ -102,6 +102,7 @@ def build_optional_signing_profile(store_file, store_password, key_alias, key_pa
|
||||
ANDROID_SDK_ARGUMENT_NAME = '--android-sdk-path'
|
||||
ANDROID_SDK_PLATFORM_ARGUMENT_NAME = '--android-sdk-platform'
|
||||
ANDROID_SDK_PREFERRED_TOOL_VER = '--android-sdk-build-tool-version'
|
||||
ANDROID_SDK_COMMAND_LINE_TOOLS_VER = '--android-sdk-command-line-tools-version'
|
||||
|
||||
ANDROID_NATIVE_API_LEVEL = '--android-native-api-level'
|
||||
|
||||
@@ -185,6 +186,11 @@ def main(args):
|
||||
default=-1)
|
||||
|
||||
# Override arguments
|
||||
parser.add_argument(ANDROID_SDK_COMMAND_LINE_TOOLS_VER,
|
||||
default='latest',
|
||||
help='The android SDK command line tools version.',
|
||||
required=False)
|
||||
|
||||
parser.add_argument(ANDROID_SDK_PREFERRED_TOOL_VER,
|
||||
help='The android SDK build tools version.',
|
||||
required=False)
|
||||
@@ -304,7 +310,8 @@ def main(args):
|
||||
f"({android_gradle_plugin_version}).")
|
||||
|
||||
# Use the SDK Resolver to make sure the build tools and ndk
|
||||
android_sdk = android_support.AndroidSDKResolver(android_sdk_path=parsed_args.get_argument(ANDROID_SDK_ARGUMENT_NAME))
|
||||
android_sdk = android_support.AndroidSDKResolver(android_sdk_path=parsed_args.get_argument(ANDROID_SDK_ARGUMENT_NAME),
|
||||
command_line_tools_version=parsed_args.get_argument(ANDROID_SDK_COMMAND_LINE_TOOLS_VER))
|
||||
|
||||
# If no SDK platform is provided, check for any installed one
|
||||
if android_sdk_platform_version < 0:
|
||||
|
||||
Reference in New Issue
Block a user