From df90bb5fd64e2066594151b9e311d45cd687a80c Mon Sep 17 00:00:00 2001 From: Mubarak Imam Date: Tue, 31 Mar 2020 19:36:01 +0100 Subject: [PATCH] fix issue with multiple java runtimes on macOS (#52474) --- packages/flutter_tools/lib/src/android/android_sdk.dart | 7 +++---- .../test/general.shard/android/android_sdk_test.dart | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/flutter_tools/lib/src/android/android_sdk.dart b/packages/flutter_tools/lib/src/android/android_sdk.dart index 98a5293f76..008b3840a8 100644 --- a/packages/flutter_tools/lib/src/android/android_sdk.dart +++ b/packages/flutter_tools/lib/src/android/android_sdk.dart @@ -583,14 +583,13 @@ class AndroidSdk { if (platform.isMacOS) { try { final String javaHomeOutput = processUtils.runSync( - ['/usr/libexec/java_home'], + ['/usr/libexec/java_home', '-v', '1.8'], throwOnError: true, hideStdout: true, ).stdout.trim(); if (javaHomeOutput != null) { - final List javaHomeOutputSplit = javaHomeOutput.split('\n'); - if ((javaHomeOutputSplit != null) && (javaHomeOutputSplit.isNotEmpty)) { - final String javaHome = javaHomeOutputSplit[0].trim(); + if ((javaHomeOutput != null) && (javaHomeOutput.isNotEmpty)) { + final String javaHome = javaHomeOutput.split('\n').last.trim(); return fileSystem.path.join(javaHome, 'bin', 'java'); } } diff --git a/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart b/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart index 422a31e19b..9a98df03d8 100644 --- a/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart @@ -98,7 +98,7 @@ void main() { .thenReturn(ProcessResult(1, 0, '26.1.1\n', '')); if (globals.platform.isMacOS) { when(globals.processManager.runSync( - ['/usr/libexec/java_home'], + ['/usr/libexec/java_home', '-v', '1.8'], workingDirectory: anyNamed('workingDirectory'), environment: anyNamed('environment'), )).thenReturn(ProcessResult(0, 0, '', '')); @@ -137,7 +137,7 @@ void main() { .thenReturn(ProcessResult(1, 1, '26.1.1\n', 'Mystery error')); if (globals.platform.isMacOS) { when(globals.processManager.runSync( - ['/usr/libexec/java_home'], + ['/usr/libexec/java_home', '-v', '1.8'], workingDirectory: anyNamed('workingDirectory'), environment: anyNamed('environment'), )).thenReturn(ProcessResult(0, 0, '', ''));