[flutter_tool] Improve yaml font map validation (#42538)

diff --git a/packages/flutter_tools/lib/src/flutter_manifest.dart b/packages/flutter_tools/lib/src/flutter_manifest.dart
index 5334b5b..759734c 100644
--- a/packages/flutter_tools/lib/src/flutter_manifest.dart
+++ b/packages/flutter_tools/lib/src/flutter_manifest.dart
@@ -439,8 +439,13 @@
       errors.add('Expected "fonts" to either be null or a list.');
       continue;
     }
-    for (final YamlMap fontListItem in fontMap['fonts']) {
-      for (final MapEntry<dynamic, dynamic> kvp in fontListItem.entries) {
+    for (final dynamic fontListItem in fontMap['fonts']) {
+      if (fontListItem is! YamlMap) {
+        errors.add('Expected "fonts" to be a list of maps.');
+        continue;
+      }
+      final YamlMap fontMapList = fontListItem;
+      for (final MapEntry<dynamic, dynamic> kvp in fontMapList.entries) {
         if (kvp.key is! String) {
           errors.add('Expected "${kvp.key}" under "fonts" to be a string.');
         }