You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Flutter url_launcher插件时遭遇MissingPluginException求助

解决url_launcher插件的MissingPluginException问题

我之前也碰到过一模一样的问题,单纯重启IDE根本不管用,以下几个方法亲测有效,你可以挨个试试:

1. 彻底清理并重建项目

这是解决这类插件未实现错误最靠谱的办法,步骤别偷懒:

  • 先停止当前运行的Flutter应用
  • 在项目根目录执行以下命令:
    flutter clean
    flutter pub get
    
  • 如果是Android项目,打开Android Studio,点击File > Sync Project with Gradle Files,确保Gradle同步完成
  • 如果是iOS项目,进入ios目录执行:
    pod install
    
  • 最后重新运行Flutter应用

2. 检查URL格式是否正确

你的代码里用的是www.google.com,但url_launcher要求必须带完整的协议头(http://或https://),虽然这不是直接导致MissingPluginException的原因,但修复这个能避免后续其他问题,修改后的代码应该是:

_launchURL(url) async { 
  await launch("https://www.google.com"); 
}

3. 确认插件集成配置是否完整

  • 检查pubspec.yaml里是否正确添加了url_launcher依赖,比如:
    dependencies:
      flutter:
        sdk: flutter
      url_launcher: ^6.1.12 # 用最新稳定版即可
    
    并且已经执行过flutter pub get,确保依赖下载成功
  • Android端:确认AndroidManifest.xml里添加了网络权限(虽然Flutter默认会加,但有时候会丢失):
    <uses-permission android:name="android.permission.INTERNET"/>
    
  • iOS端:在Info.plist里添加允许查询的URL Scheme:
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>http</string>
        <string>https</string>
    </array>
    

4. 针对Flutter嵌入原生项目的特殊处理

如果你的Flutter代码是作为模块嵌入到原生Android/iOS项目里的,那还要确保原生项目正确配置了Flutter插件:

  • Android:在settings.gradle里正确包含Flutter模块,并且app/build.gradle里添加了插件依赖
  • iOS:确保Podfile里正确引用了Flutter模块,并且执行过pod install完成框架链接

附你提供的问题代码和错误日志:

调用代码:

_launchURL(url) async { await launch("www.google.com"); }

错误日志:

E/flutter ( 8299): MissingPluginException(No implementation found for method launch on channel plugins.flutter.io/url_launcher)
E/flutter ( 8299): #0 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:278:7)
E/flutter ( 8299):
E/flutter ( 8299): #1 launch (package:url_launcher/url_launcher.dart:47:19)
E/flutter ( 8299): #2 _launchURL (file:///Users/matejsimunic/Work/dart/suhail/lib/main.dart:834:9)
E/flutter ( 8299):
E/flutter ( 8299): #3 _TripDetailBodyState.build. (file:///Users/matejsimunic/Work/dart/suhail/lib/main.dart:818:19)
E/flutter ( 8299): #4 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:494:14)
E/flutter ( 8299): #5 _InkResponseState.build. (package:flutter/src/material/ink_well.dart:549:30)
E/flutter ( 8299): #6 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
E/flutter ( 8299): #7 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:161:9)
E/flutter ( 8299): #8 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:94:7)
E/flutter ( 8299): #9 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:315:9)
E/flutter ( 8299): #10 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)
E/flutter ( 8299): #11 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:11)
E/flutter ( 8299): #12 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:143:19)
E/flutter ( 8299): #13 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
E/flutter ( 8299): #14 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101:7)
E/flutter ( 8299): #15 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64:7)
E/flutter ( 8299): #16 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48:7)
E/flutter ( 8299): #17 _invoke1 (dart:ui/hooks.dart:134:13)
E/flutter ( 8299): #18 _dispatchPointerDataPacket (dart:ui/hooks.dart:91:5)

内容的提问来源于stack exchange,提问作者Tree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:22:08