← SkillSafe
Channel Lens

For Flutter developers whose plugin throws MissingPluginException

Channel LensA channel name off by one letter, a method iOS never handles, a plugin with only registerWith. Line up the Dart and platform sides, then get the corrected files.

Paste the plugin's files - the Dart API, the Kotlin or Java plugin class, the Swift or Objective-C one, the Windows C++ and pubspec.yaml. Your browser lines up every method Dart invokes against every branch each platform handles, matches the channel name on every side and pluginClass against the code, and flags handlers with no notImplemented fallback, plugins with only the v1 registerWith, no cleanup on detach and an Activity without ActivityAware. Then the review, and the corrected files.

Try a sample:

The plugin files free

The scan free

What the scan found

The method contract

The skill's plugin workflows

The plugin commands, and the checklist free

The skill's commands, filled in with this plugin's name, org and platforms: flutter create for a standard or FFI plugin, the Android Studio and Visual Studio steps, and adding a platform.

commands.md


    

The review

Pricing as soon as the session is ready...

NOT RUN YET

The page's check of this reply

    Saved reviews

    How it works - and what it cannot see

    The scan splits the paste at its file lines and reads each file with comments and strings masked, resolving the string constants each one defines - so it can tell that Dart's _channel is samples.flutter.dev/battery while the Kotlin side opens samples.flutter.dev/batteries. It reads every invokeMethod in Dart and every branch of each handler (a Kotlin when, a Java equals chain, a Swift switch, an Objective-C isEqualToString, a C++ method_name compare), and checks the plugin classes against the skill: FlutterPlugin with a public constructor, one shared setup method, cleanup on detach, ActivityAware when an Activity is needed, register(with:) on iOS, and pubspec's pluginClass.

    It cannot see whether the arguments and return values have the types both sides expect, which thread a handler replies on, or what the federated packages outside the paste do - that is the review. The page re-scans the rewritten files, so a fix that did not land is flagged rather than trusted, and every file and class keeps its name.