[flutter_tools][plugins] generated registerWith guards against re-registration (#13384)
diff --git a/packages/flutter_tools/lib/src/plugins.dart b/packages/flutter_tools/lib/src/plugins.dart index f0a079e..19d7bc0 100644 --- a/packages/flutter_tools/lib/src/plugins.dart +++ b/packages/flutter_tools/lib/src/plugins.dart
@@ -102,10 +102,22 @@ */ public final class GeneratedPluginRegistrant { public static void registerWith(PluginRegistry registry) { + if (alreadyRegisteredWith(registry)) { + return; + } {{#plugins}} {{class}}.registerWith(registry.registrarFor("{{package}}.{{class}}")); {{/plugins}} } + + private static boolean alreadyRegisteredWith(PluginRegistry registry) { + final String key = GeneratedPluginRegistrant.class.getCanonicalName(); + if (registry.hasPlugin(key)) { + return true; + } + registry.registrarFor(key); + return false; + } } ''';