diff --git a/dev/bots/test.dart b/dev/bots/test.dart index 6670ef0017..d9a9f6ed16 100644 --- a/dev/bots/test.dart +++ b/dev/bots/test.dart @@ -1113,7 +1113,7 @@ Map _initGradleEnvironment() { ? Platform.environment['ANDROID_SDK_ROOT'] : Platform.environment['ANDROID_HOME']; if (androidSdkRoot == null || androidSdkRoot.isEmpty) { - print('${red}Could not find Android SDK; set ANDROID_SDK_ROOT (or ANDROID_HOME).$reset'); + print('${red}Could not find Android SDK; set ANDROID_SDK_ROOT.$reset'); exit(1); } return { diff --git a/dev/devicelab/README.md b/dev/devicelab/README.md index 4c6a062cc2..609e8448b0 100644 --- a/dev/devicelab/README.md +++ b/dev/devicelab/README.md @@ -94,7 +94,7 @@ reproduce a CI test failure locally. ## Prerequisites -You must set the `ANDROID_HOME` or `ANDROID_SDK_ROOT` environment variable to run +You must set `ANDROID_SDK_ROOT` environment variable to run tests on Android. If you have a local build of the Flutter engine, then you have a copy of the Android SDK at `.../engine/src/third_party/android_tools/sdk`. diff --git a/dev/devicelab/lib/framework/adb.dart b/dev/devicelab/lib/framework/adb.dart index 65163a02da..959983c541 100644 --- a/dev/devicelab/lib/framework/adb.dart +++ b/dev/devicelab/lib/framework/adb.dart @@ -690,8 +690,8 @@ String get adbPath { if (androidHome == null) { throw const DeviceException( - 'The ANDROID_SDK_ROOT and ANDROID_HOME environment variables are ' - 'missing. At least one of these variables must point to the Android ' + 'The ANDROID_SDK_ROOT environment variable is ' + 'missing. The variable must point to the Android ' 'SDK directory containing platform-tools.' ); } diff --git a/dev/devicelab/lib/framework/apk_utils.dart b/dev/devicelab/lib/framework/apk_utils.dart index 63415a6024..fcba3cdac0 100644 --- a/dev/devicelab/lib/framework/apk_utils.dart +++ b/dev/devicelab/lib/framework/apk_utils.dart @@ -105,7 +105,7 @@ String get _androidHome { final String androidHome = Platform.environment['ANDROID_HOME'] ?? Platform.environment['ANDROID_SDK_ROOT']; if (androidHome == null || androidHome.isEmpty) { - throw Exception('Unset env flag: `ANDROID_HOME` or `ANDROID_SDK_ROOT`.'); + throw Exception('Environment variable `ANDROID_SDK_ROOT` is not set.'); } return androidHome; } diff --git a/packages/flutter_tools/lib/src/android/android_device_discovery.dart b/packages/flutter_tools/lib/src/android/android_device_discovery.dart index 634e1beb8e..a5f5290ca3 100644 --- a/packages/flutter_tools/lib/src/android/android_device_discovery.dart +++ b/packages/flutter_tools/lib/src/android/android_device_discovery.dart @@ -59,10 +59,10 @@ class AndroidDevices extends PollingDeviceDiscovery { )).stdout.trim(); } on ArgumentError catch (exception) { throwToolExit('Unable to find "adb", check your Android SDK installation and ' - 'ANDROID_HOME environment variable: ${exception.message}'); + '$kAndroidSdkRoot environment variable: ${exception.message}'); } on ProcessException catch (exception) { throwToolExit('Unable to run "adb", check your Android SDK installation and ' - 'ANDROID_HOME environment variable: ${exception.executable}'); + '$kAndroidSdkRoot environment variable: ${exception.executable}'); } final List devices = []; parseADBDeviceOutput( diff --git a/packages/flutter_tools/lib/src/android/android_sdk.dart b/packages/flutter_tools/lib/src/android/android_sdk.dart index 9695442bdb..1179eba66a 100644 --- a/packages/flutter_tools/lib/src/android/android_sdk.dart +++ b/packages/flutter_tools/lib/src/android/android_sdk.dart @@ -14,22 +14,24 @@ import '../convert.dart'; import '../globals.dart' as globals; import 'android_studio.dart'; +// ANDROID_HOME is deprecated. +// See https://developer.android.com/studio/command-line/variables.html#envar const String kAndroidHome = 'ANDROID_HOME'; const String kAndroidSdkRoot = 'ANDROID_SDK_ROOT'; // Android SDK layout: -// $ANDROID_HOME/platform-tools/adb +// $ANDROID_SDK_ROOT/platform-tools/adb -// $ANDROID_HOME/build-tools/19.1.0/aapt, dx, zipalign -// $ANDROID_HOME/build-tools/22.0.1/aapt -// $ANDROID_HOME/build-tools/23.0.2/aapt -// $ANDROID_HOME/build-tools/24.0.0-preview/aapt -// $ANDROID_HOME/build-tools/25.0.2/apksigner +// $ANDROID_SDK_ROOT/build-tools/19.1.0/aapt, dx, zipalign +// $ANDROID_SDK_ROOT/build-tools/22.0.1/aapt +// $ANDROID_SDK_ROOT/build-tools/23.0.2/aapt +// $ANDROID_SDK_ROOT/build-tools/24.0.0-preview/aapt +// $ANDROID_SDK_ROOT/build-tools/25.0.2/apksigner -// $ANDROID_HOME/platforms/android-22/android.jar -// $ANDROID_HOME/platforms/android-23/android.jar -// $ANDROID_HOME/platforms/android-N/android.jar +// $ANDROID_SDK_ROOT/platforms/android-22/android.jar +// $ANDROID_SDK_ROOT/platforms/android-23/android.jar +// $ANDROID_SDK_ROOT/platforms/android-N/android.jar final RegExp _numberedAndroidPlatformRe = RegExp(r'^android-([0-9]+)$'); final RegExp _sdkVersionRe = RegExp(r'^ro.build.version.sdk=([0-9]+)$'); diff --git a/packages/flutter_tools/lib/src/android/gradle_utils.dart b/packages/flutter_tools/lib/src/android/gradle_utils.dart index 7f741f8663..9646949b57 100644 --- a/packages/flutter_tools/lib/src/android/gradle_utils.dart +++ b/packages/flutter_tools/lib/src/android/gradle_utils.dart @@ -304,6 +304,6 @@ void exitWithNoSdkMessage() { BuildEvent('unsupported-project', eventError: 'android-sdk-not-found', flutterUsage: globals.flutterUsage).send(); throwToolExit( '$warningMark No Android SDK found. ' - 'Try setting the ANDROID_HOME environment variable.' + 'Try setting the ANDROID_SDK_ROOT environment variable.' ); } diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart index 4c7e3bb93b..736c275a7f 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart @@ -266,7 +266,7 @@ void main() { arguments: ['--no-pub'], ); }, throwsToolExit( - message: 'No Android SDK found. Try setting the ANDROID_HOME environment variable', + message: 'No Android SDK found. Try setting the ANDROID_SDK_ROOT environment variable', )); }, overrides: { diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_apk_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_apk_test.dart index 2d2c073efc..e449704e89 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_apk_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_apk_test.dart @@ -212,7 +212,7 @@ void main() { arguments: ['--no-pub'], ); }, throwsToolExit( - message: 'No Android SDK found. Try setting the ANDROID_HOME environment variable', + message: 'No Android SDK found. Try setting the ANDROID_SDK_ROOT environment variable', )); }, overrides: { diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_appbundle_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_appbundle_test.dart index a2a37007df..2376dfbff8 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_appbundle_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_appbundle_test.dart @@ -197,7 +197,7 @@ void main() { arguments: ['--no-pub'], ); }, throwsToolExit( - message: 'No Android SDK found. Try setting the ANDROID_HOME environment variable', + message: 'No Android SDK found. Try setting the ANDROID_SDK_ROOT environment variable', )); }, overrides: { diff --git a/packages/flutter_tools/test/general.shard/android/gradle_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_test.dart index e7eeda1abf..54f655a6f0 100644 --- a/packages/flutter_tools/test/general.shard/android/gradle_test.dart +++ b/packages/flutter_tools/test/general.shard/android/gradle_test.dart @@ -323,7 +323,7 @@ void main() { expect(() { updateLocalProperties(project: FlutterProject.current()); }, throwsToolExit( - message: '$warningMark No Android SDK found. Try setting the ANDROID_HOME environment variable.', + message: '$warningMark No Android SDK found. Try setting the ANDROID_SDK_ROOT environment variable.', )); }, overrides: { AndroidSdk: () => null,