From f9cd87e60a9bce9343b4e887d0353fe608db29d5 Mon Sep 17 00:00:00 2001 From: Taha Tesser Date: Wed, 26 May 2021 20:59:02 +0300 Subject: [PATCH] [flutter_tools] Add documentation to "cmdline-tools component is missing" doctor validation error (#83356) --- packages/flutter_tools/lib/src/android/android_workflow.dart | 2 +- packages/flutter_tools/lib/src/base/user_messages.dart | 3 +++ .../test/general.shard/android/android_workflow_test.dart | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/flutter_tools/lib/src/android/android_workflow.dart b/packages/flutter_tools/lib/src/android/android_workflow.dart index cca2ea599c4..6499bc20078 100644 --- a/packages/flutter_tools/lib/src/android/android_workflow.dart +++ b/packages/flutter_tools/lib/src/android/android_workflow.dart @@ -186,7 +186,7 @@ class AndroidValidator extends DoctorValidator { return ValidationResult(ValidationType.missing, messages); } if (!androidSdk.cmdlineToolsAvailable) { - messages.add(const ValidationMessage.error('cmdline-tools component is missing')); + messages.add(ValidationMessage.error(_userMessages.androidMissingCmdTools)); return ValidationResult(ValidationType.missing, messages); } diff --git a/packages/flutter_tools/lib/src/base/user_messages.dart b/packages/flutter_tools/lib/src/base/user_messages.dart index 1a674415499..cfa55405fb0 100644 --- a/packages/flutter_tools/lib/src/base/user_messages.dart +++ b/packages/flutter_tools/lib/src/base/user_messages.dart @@ -120,6 +120,9 @@ class UserMessages { String androidSdkBuildToolsOutdated(String managerPath, int sdkMinVersion, String buildToolsMinVersion, Platform platform) => 'Flutter requires Android SDK $sdkMinVersion and the Android BuildTools $buildToolsMinVersion\n' 'To update the Android SDK visit ${_androidSdkInstallUrl(platform)} for detailed instructions.'; + String get androidMissingCmdTools => 'cmdline-tools component is missing\n' + 'Run `path/to/sdkmanager --install "cmdline-tools;latest"`\n' + 'See https://developer.android.com/studio/command-line for more details.'; // Messages used in AndroidStudioValidator String androidStudioVersion(String version) => 'version $version'; diff --git a/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart b/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart index aedc0cabb7b..4902e6eb140 100644 --- a/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_workflow_test.dart @@ -395,11 +395,13 @@ Review licenses that have not been accepted (y/N)? userMessages: UserMessages(), ); + final String errorMessage = UserMessages().androidMissingCmdTools; + final ValidationResult validationResult = await androidValidator.validate(); expect(validationResult.type, ValidationType.missing); expect( validationResult.messages.last.message, - 'cmdline-tools component is missing', + errorMessage, ); });