Request the user upgrade if the Android SDK version is 24 (#8462)

* Request the user upgrade if the Android SDK version is 24

* Update android_sdk_test.dart

* Update android_sdk.dart
diff --git a/packages/flutter_tools/lib/src/android/android_sdk.dart b/packages/flutter_tools/lib/src/android/android_sdk.dart
index 0a7389f..c3fec0d 100644
--- a/packages/flutter_tools/lib/src/android/android_sdk.dart
+++ b/packages/flutter_tools/lib/src/android/android_sdk.dart
@@ -2,14 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'package:pub_semver/pub_semver.dart';
-
 import '../base/common.dart';
 import '../base/context.dart';
 import '../base/file_system.dart';
 import '../base/os.dart';
 import '../base/platform.dart';
 import '../base/process_manager.dart';
+import '../base/version.dart';
 import '../globals.dart';
 
 AndroidSdk get androidSdk => context[AndroidSdk];
@@ -36,6 +35,9 @@
   'android-stable': 24,
 };
 
+/// The minimum Android SDK version we support.
+const int minimumAndroidSdkVersion = 25;
+
 /// Locate ADB. Prefer to use one from an Android SDK, if we can locate that.
 /// This should be used over accessing androidSdk.adbPath directly because it
 /// will work for those users who have Android Platform Tools installed but
@@ -188,7 +190,7 @@
       return new AndroidSdkVersion(
         this,
         platformVersionName: platformName,
-        buildToolsVersionName: buildToolsVersion.toString()
+        buildToolsVersion: buildToolsVersion
       );
     }).where((AndroidSdkVersion version) => version != null).toList();
 
@@ -204,12 +206,13 @@
 class AndroidSdkVersion implements Comparable<AndroidSdkVersion> {
   AndroidSdkVersion(this.sdk, {
     this.platformVersionName,
-    this.buildToolsVersionName
+    this.buildToolsVersion,
   });
 
   final AndroidSdk sdk;
   final String platformVersionName;
-  final String buildToolsVersionName;
+  final Version buildToolsVersion;
+  String get buildToolsVersionName => buildToolsVersion.toString();
 
   int get sdkLevel {
     if (_namedVersionMap.containsKey(platformVersionName))
@@ -229,6 +232,10 @@
   String get apksignerPath => getBuildToolsPath('apksigner');
 
   List<String> validateSdkWellFormed({bool requireApkSigner = true}) {
+    if (buildToolsVersion.major < minimumAndroidSdkVersion) {
+      return <String>['Minimum supported Android SDK version is $minimumAndroidSdkVersion '
+                      'but this system has ${buildToolsVersion.major}. Please upgrade.'];
+    }
     if (_exists(androidJarPath) != null)
       return <String>[_exists(androidJarPath)];