diff --git a/packages/flutter_tools/bin/fuchsia_tester.dart b/packages/flutter_tools/bin/fuchsia_tester.dart
index 85d5891..789aa5c 100644
--- a/packages/flutter_tools/bin/fuchsia_tester.dart
+++ b/packages/flutter_tools/bin/fuchsia_tester.dart
@@ -116,7 +116,10 @@
     Directory testDirectory;
     CoverageCollector collector;
     if (argResults['coverage']) {
-      collector = CoverageCollector(await FlutterProject.current(), coverageDirectory: coverageDirectory);
+      collector = CoverageCollector(
+        flutterProject: await FlutterProject.current(),
+        coverageDirectory: coverageDirectory,
+      );
       if (!argResults.options.contains(_kOptionTestDirectory)) {
         throwToolExit('Use of --coverage requires setting --test-directory');
       }
diff --git a/packages/flutter_tools/lib/src/commands/test.dart b/packages/flutter_tools/lib/src/commands/test.dart
index 9a0924d..c616013 100644
--- a/packages/flutter_tools/lib/src/commands/test.dart
+++ b/packages/flutter_tools/lib/src/commands/test.dart
@@ -149,7 +149,9 @@
 
     CoverageCollector collector;
     if (argResults['coverage'] || argResults['merge-coverage']) {
-      collector = CoverageCollector(await FlutterProject.current());
+      collector = CoverageCollector(
+        flutterProject: await FlutterProject.current(),
+      );
     }
 
     final bool machine = argResults['machine'];
diff --git a/packages/flutter_tools/lib/src/test/coverage_collector.dart b/packages/flutter_tools/lib/src/test/coverage_collector.dart
index 320bc04..4fec282 100644
--- a/packages/flutter_tools/lib/src/test/coverage_collector.dart
+++ b/packages/flutter_tools/lib/src/test/coverage_collector.dart
@@ -21,7 +21,7 @@
 
 /// A class that's used to collect coverage data during tests.
 class CoverageCollector extends TestWatcher {
-  CoverageCollector(this.flutterProject, {this.coverageDirectory});
+  CoverageCollector({this.flutterProject, this.coverageDirectory});
 
   Map<String, dynamic> _globalHitmap;
   final Directory coverageDirectory;
@@ -63,6 +63,9 @@
       if (coverageDirectory != null) {
         return true;
       }
+      if (flutterProject == null) {
+        return true;
+      }
       return libraryName.contains(flutterProject.manifest.appName);
     })
       .then<void>((Map<String, dynamic> result) {
