From ffe5851eb726d9798ce82ee5a8084c1bfb9752b9 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Thu, 3 Aug 2017 13:09:10 -0700 Subject: [PATCH] Do not throw if a hot reload is attempted when all Flutter instances on the device have been stopped (#11504) This can happen if an Android host app has been paused but its process is still running --- packages/flutter_tools/lib/src/run_hot.dart | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index d800754aee..a4faac372f 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart @@ -467,16 +467,19 @@ class HotRunner extends ResidentRunner { final String entryPath = fs.path.relative(mainPath, from: projectRootPath); if (benchmarkMode) vmReloadTimer.start(); - Map reloadReport; - final List>> reloadReports = >>[]; + final List>> reloadReportFutures = >>[]; for (FlutterDevice device in flutterDevices) { final List>> reports = device.reloadSources( entryPath, pause: pause ); - reloadReports.addAll(reports); + reloadReportFutures.addAll(reports); } - reloadReport = (await Future.wait(reloadReports)).first; + if (reloadReportFutures.isEmpty) { + printError('Unable to hot reload. No instance of Flutter is currently running.'); + return new OperationResult(1, 'No instances running'); + } + final Map reloadReport = (await Future.wait(reloadReportFutures)).first; if (!validateReloadReport(reloadReport)) { // Reload failed.