Adding missing break in plugin validation check (#43180)

diff --git a/packages/flutter_tools/lib/src/flutter_manifest.dart b/packages/flutter_tools/lib/src/flutter_manifest.dart
index 759734c..a2a8e59 100644
--- a/packages/flutter_tools/lib/src/flutter_manifest.dart
+++ b/packages/flutter_tools/lib/src/flutter_manifest.dart
@@ -401,8 +401,9 @@
         }
         break;
       case 'plugin':
-        if (kvp.value is! YamlMap) {
+        if (kvp.value is! YamlMap || kvp.value == null) {
           errors.add('Expected "${kvp.key}" to be an object, but got ${kvp.value} (${kvp.value.runtimeType}).');
+          break;
         }
         final List<String> pluginErrors = Plugin.validatePluginYaml(kvp.value);
         errors.addAll(pluginErrors);
diff --git a/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart b/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart
index cfdc70f..2447929 100644
--- a/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart
+++ b/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart
@@ -400,6 +400,18 @@
       expect(flutterManifest.androidPackage, 'com.example');
     });
 
+    testUsingContext('handles an invalid plugin declaration', () async {
+      final BufferLogger bufferLogger = context.get<Logger>();
+      const String manifest = '''
+name: test
+flutter:
+    plugin:
+''';
+      final FlutterManifest flutterManifest = FlutterManifest.createFromString(manifest);
+      expect(flutterManifest, null);
+      expect(bufferLogger.errorText, contains('Expected "plugin" to be an object, but got null'));
+    });
+
 
     Future<void> checkManifestVersion({
       String manifest,