Improve error message when Android SDK not found
Also, look for the Android SDK in the default locations.
diff --git a/packages/flutter_tools/lib/src/android/android_sdk.dart b/packages/flutter_tools/lib/src/android/android_sdk.dart
index b67000a..27096f2 100644
--- a/packages/flutter_tools/lib/src/android/android_sdk.dart
+++ b/packages/flutter_tools/lib/src/android/android_sdk.dart
@@ -49,12 +49,24 @@
static AndroidSdk locateAndroidSdk() {
// TODO: Use explicit configuration information from a metadata file?
+ String androidHomeDir;
if (Platform.environment.containsKey('ANDROID_HOME')) {
- String homeDir = Platform.environment['ANDROID_HOME'];
- if (validSdkDirectory(homeDir))
- return new AndroidSdk(homeDir);
- if (validSdkDirectory(path.join(homeDir, 'sdk')))
- return new AndroidSdk(path.join(homeDir, 'sdk'));
+ androidHomeDir = Platform.environment['ANDROID_HOME'];
+ } else if (Platform.isLinux) {
+ String homeDir = Platform.environment['HOME'];
+ if (homeDir != null)
+ androidHomeDir = '$homeDir/Android/Sdk';
+ } else if (Platform.isMacOS) {
+ String homeDir = Platform.environment['HOME'];
+ if (homeDir != null)
+ androidHomeDir = '$homeDir/Library/Android/sdk';
+ }
+
+ if (androidHomeDir != null) {
+ if (validSdkDirectory(androidHomeDir))
+ return new AndroidSdk(androidHomeDir);
+ if (validSdkDirectory(path.join(androidHomeDir, 'sdk')))
+ return new AndroidSdk(path.join(androidHomeDir, 'sdk'));
}
File aaptBin = os.which('aapt'); // in build-tools/$version/aapt