Flutter http 包不存在
Posted
技术标签:
【中文标题】Flutter http 包不存在【英文标题】:Flutter http package does not exist 【发布时间】:2019-05-13 16:10:52 【问题描述】:通常应该像这样导入包:
import 'package:http/http.dart' as http;
但现在我收到此错误:
[dart] URI 的目标不存在:'package:http/http.dart'。 [uri_does_not_exist]
在 Flutter 的新更新中是否发生了某种变化?如果是这样,我现在如何执行获取请求?
【问题讨论】:
如果在 vs 代码上,如果您的颤振项目位于 Code 中打开的文件夹的子文件夹中,则可能会发生这种情况。正如您在 cmets 中看到的重新启动代码或 android studio 解决了问题 【参考方案1】:在flutter中添加http的方法很清晰
-
将此添加到包的 pubspec.yaml 文件中:
dependencies: http: ^0.12.0 // latest one might change
-
安装它
您可以从命令行安装软件包:
与酒吧:
$ pub get
使用颤振:
$ flutter packages get
-
导入
现在在您的 Dart 代码中,您可以使用:
import 'package:http/http.dart';
如果您已完成这 3 个步骤,请重新启动代码编辑器
【讨论】:
重新启动代码编辑器的部分似乎很重要。这对我有用。 重启 Android Studio 为我解决了这个问题。 我不知道重新启动后它对我不起作用。 我在使用 Visual Studio Code 时也是如此。将包添加到依赖项,重新启动工作室然后问题就解决了。【参考方案2】:你添加到pubspec
了吗?
dependencies:
flutter:
sdk: flutter
http: 0.12.0
【讨论】:
我投了赞成票,因为该示例向我展示了如何使用适当的缩进添加依赖项。或者至少在我以这种方式缩进之前我没有成功。 非常感谢.. 这是我的问题。你帮了我很多 很棒的解决方案【参考方案3】:在 Android Studio 中像这样导入
-
转到
pubspec.yaml
添加依赖http: ^0.12.0+2
点击顶部的Packages get
一些重要的事情:
1) 在添加依赖项时遵循正确的缩进。
正确:
dependencies:
flutter:
sdk: flutter
http: ^0.12.0+2
不正确:
dependencies:
flutter:
sdk: flutter
http: ^0.12.0+2
如果你像这样添加依赖并点击 Packages get 那么, 您将收到错误:
pubspec.yaml 第 21 行第 5 列的错误:依赖项可能只有一个源。 sdk:颤动
2) 查找包和最新的依赖项。
你可以找到最新的HTTP包Here 所有 Dart 包都发布在 Pubsite 上,您可以在其中找到并查看趋势包。
【讨论】:
【参考方案4】:添加:
dependencies:
flutter:
sdk: flutter
http: ^0.12.0
到pubspec.yaml
,更新Packages.get
和Packages.upgrade
。如果仍然无法正常工作,请重新启动 IDE。
【讨论】:
【参考方案5】:像这样向 pubspec 添加依赖项。
dependencies:
http: ^0.12.0
**** 更新包获取。
**** 更新依赖项。
【讨论】:
【参考方案6】:您的代码看起来不错。但是,在阅读了 Andrey 答案下方的 cmets 之后,您还必须确保在将 http
依赖项添加到您的 pubspec.yaml
之后运行 flutter packages get
或 pub get
。
【讨论】:
也这样做了。这不是问题。 很奇怪。你能在这里提供你的pubspec.yaml
吗?
解决了这个问题。重新启动IDE,包工作正常。很奇怪。【参考方案7】:
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for ios style icons.
cupertino_icons: ^0.1.2
http: ^0.12.0
【讨论】:
【参考方案8】:尝试在flutter依赖之前添加http依赖,然后点击Packages get
dependencies:
http: ^0.12.0
flutter:
sdk: flutter
如果你把它放在flutter之后会出错。希望这会有所帮助
【讨论】:
【参考方案9】:转到 pubspec.yaml 文件。然后添加
http:任意
以下依赖项:
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
http: any
然后点击包获取
【讨论】:
【参考方案10】:首先,只需重新启动您的代码编辑器
插入符号 ^ 不是强制性的。您可以添加到您的pubspec.yaml
dependencies:
http: 0.12.0+2
如果您使用的是 VSCode 或 Android Studio,则在保存文件时会自动调用flutter packages get
。
重启 VSCode 解决了我的问题。
【讨论】:
【参考方案11】:从你的flutter安装目录中的.pub-cache文件夹中清除内容,然后在android studio/ VS code中创建一个空白的flutter项目并添加http依赖并点击“Packages get”。
请注意,“http”包应该在 .pub-cache\hosted\pub.dartlang.org 文件夹中生成,然后在您当前的项目中打开 pubspec.yaml 文件并单击“Packages get”,这个技巧现在应该可以解决您的问题了“http”依赖项。
注意:确保您的网络没有阻止来自 Pub 站点的下载,并且当前项目已关闭,同时在另一个项目中添加“http”依赖项。
【讨论】:
【参考方案12】:这里的答案提到了软件包版本。如果您不知道包版本,但知道包名称(如您的情况),只需执行以下操作:
flutter pub add <package_name>
在您的情况下转换为flutter pub add http
。
这始终会获取您可以在项目中使用的最新包。
【讨论】:
【参考方案13】:在完成@Bawantha 提供的所有步骤后,如果问题仍然存在,请尝试以下对我有用的步骤。
-
重启你的安卓工作室。
转到颤振检查器工具栏
单击刷新小部件信息按钮。
注意:确保您拥有执行此操作的管理员权限。
【讨论】:
以上是关于Flutter http 包不存在的主要内容,如果未能解决你的问题,请参考以下文章