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
diff --git a/packages/flutter_tools/lib/src/commands/apk.dart b/packages/flutter_tools/lib/src/commands/apk.dart
index f8230c0..ffc6781 100644
--- a/packages/flutter_tools/lib/src/commands/apk.dart
+++ b/packages/flutter_tools/lib/src/commands/apk.dart
@@ -177,7 +177,7 @@
Future<int> runInProject() async {
// Validate that we can find an android sdk.
if (androidSdk == null) {
- printError('No Android SDK found.');
+ printError('No Android SDK found. Try setting the ANDROID_HOME environment variable.');
return 1;
}
@@ -371,7 +371,7 @@
}) async {
// Validate that we can find an android sdk.
if (androidSdk == null) {
- printError('No Android SDK found.');
+ printError('No Android SDK found. Try setting the ANDROID_HOME environment variable.');
return 1;
}