Unverified Commit 266a7202 authored by Danny Tuppeny's avatar Danny Tuppeny Committed by GitHub

Ensure we have the Java binary on PATH when invoking avdmanager (#18908)

See https://github.com/flutter/flutter/issues/13379#issuecomment-400984667.
parent 4a6558f8
...@@ -466,6 +466,8 @@ class AndroidSdk { ...@@ -466,6 +466,8 @@ class AndroidSdk {
} }
Map<String, String> _sdkManagerEnv; Map<String, String> _sdkManagerEnv;
/// Returns an environment with the Java folder added to PATH for use in calling
/// Java-based Android SDK commands such as sdkmanager and avdmanager.
Map<String, String> get sdkManagerEnv { Map<String, String> get sdkManagerEnv {
if (_sdkManagerEnv == null) { if (_sdkManagerEnv == null) {
// If we can locate Java, then add it to the path used to run the Android SDK manager. // If we can locate Java, then add it to the path used to run the Android SDK manager.
......
...@@ -114,7 +114,8 @@ class EmulatorManager { ...@@ -114,7 +114,8 @@ class EmulatorManager {
'-k', sdkId, '-k', sdkId,
'-d', device '-d', device
]; ];
final ProcessResult runResult = processManager.runSync(args); final ProcessResult runResult = processManager.runSync(args,
environment: androidSdk?.sdkManagerEnv);
return new CreateEmulatorResult( return new CreateEmulatorResult(
name, name,
success: runResult.exitCode == 0, success: runResult.exitCode == 0,
...@@ -134,7 +135,8 @@ class EmulatorManager { ...@@ -134,7 +135,8 @@ class EmulatorManager {
'device', 'device',
'-c' '-c'
]; ];
final ProcessResult runResult = processManager.runSync(args); final ProcessResult runResult = processManager.runSync(args,
environment: androidSdk?.sdkManagerEnv);
if (runResult.exitCode != 0) if (runResult.exitCode != 0)
return null; return null;
...@@ -159,7 +161,8 @@ class EmulatorManager { ...@@ -159,7 +161,8 @@ class EmulatorManager {
'avd', 'avd',
'-n', 'temp', '-n', 'temp',
]; ];
final ProcessResult runResult = processManager.runSync(args); final ProcessResult runResult = processManager.runSync(args,
environment: androidSdk?.sdkManagerEnv);
// Get the list of IDs that match our criteria // Get the list of IDs that match our criteria
final List<String> availableIDs = runResult.stderr final List<String> availableIDs = runResult.stderr
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment