问题描述
我一直在做一个出租车克隆应用的 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()
方法。