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

Flutter接入url_launcher遇URI目标不存在错误,求解决方法

解决url_launcher导入错误的方案

1. 确认Flutter版本与依赖兼容性

url_launcher 6.3.2要求Flutter版本至少3.10.0。先运行以下命令确认你的准确Flutter版本:

flutter --version

如果你的版本确实是3.41.9(推测是版本号输入笔误,比如3.19.4),则满足最低要求;如果是更低版本(比如3.4.x),要么升级Flutter到3.10.0以上,要么把pubspec.yaml里的url_launcher版本降级到适配旧版本的,比如url_launcher: ^6.2.5(支持Flutter 2.10+)。

2. 检查VS Code的Flutter SDK路径配置

VS Code可能误加载了其他版本的Flutter SDK,导致依赖解析异常:

  • 打开VS Code设置(Ctrl+,),搜索Flutter SDK Path
  • 确认路径指向你本地正确的Flutter安装目录
  • 保存设置后重启VS Code

3. 执行彻底的缓存清理与依赖重新安装

按顺序执行以下操作:

  1. 运行清理命令:
    flutter clean
    
  2. 手动删除项目根目录下的pubspec.lock文件和.dart_tool文件夹
  3. 重新拉取依赖:
    flutter pub get
    
  4. 重新加载项目:按下Ctrl+Shift+P,选择Flutter: Reload Project

4. 检查基础配置细节

  • 确认pubspec.yaml在项目根目录,url_launcher依赖放在dependencies节点下(不是dev_dependencies)
  • 检查导入语句拼写:确保是import 'package:url_launcher/url_launcher.dart';,无大小写或拼写错误

额外提示:代码中的变量问题

你的onNavigationRequest回调里存在未定义变量的问题,需要修正:

onNavigationRequest: (NavigationRequest request) async {
  final uri = Uri.parse(request.url); // 定义uri变量
  if (await canLaunchUrl(uri)) {
    await launchUrl(uri, mode: LaunchMode.externalApplication);
  } else {
    debugPrint('Cannot open URL: ${request.url}'); // 使用request.url替代未定义的url
  }
  return NavigationDecision.prevent;
},

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 21:53:10