未处理的异常:“String”类型不是“Uri”类型的子类型

问题描述

我一直在做一个出租车克隆应用的 Flutter 移动项目。我已将 Google Maps API 用于地理编码和方向。我一直在关注 youtube (the link) 上的教程。当我运行项目时,我没有得到任何数据并在控制台中看到这个错误

[ERROR:Flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:类型 'String' 不是 'Uri' 类型的子类型

请帮帮我。我是为学校项目做的

解决方法

这很可能是由于 http package 的版本控制所致。看视频教程,好像老师用的是http 0.12.2,而你好像用的是更高版本(0.13.0以上)。如果您查看 changelog,您会看到有关 0.12.2 之后所做更改的注释:

破坏 以前允许字符串或 Uri 的所有 API 现在通过需要一个 Uri。

要解决您的问题,您需要传递 Uri 而不是 String

var url = Uri.parse('https://example.com'); 
,

您可能使用了字符串(例如“https://yoursuperendpoint.com”)
并且您需要使用 URI:为此有一个特殊的 Uri 类。

那里有文档:https://api.flutter.dev/flutter/dart-core/Uri-class.html

但您可能会使用 Uri.tryParse() 方法。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...