【问题标题】:error in importing Http/http.dart package导入 Http/http.dart 包时出错
【发布时间】:2020-05-19 07:38:31
【问题描述】:

我用适当的缩进更新了依赖关系,然后flutter pub get,然后在代码中导入它。也尝试重新启动我的ide。当我尝试构建应用程序时弹出错误。

错误:

无法找到某些来源的模块,这通常是由于 要么是错误的导入,要么是包中缺少依赖项(或者可能是 dev_dependency 需要移动到真正的依赖项),或者构建失败 (如果导入生成的文件)。

请检查以下导入:

import 'package:http/http.dart' as http; 来自 myapp|lib/myapp.dart 83:1

代码:

    import 'package:flutter/material.dart';
    import 'package:http/http.dart' as http;
    import 'dart:convert';
    import 'dart:async';

     void main(){
       runApp(MaterialApp(
         home: HomePage(),
       ));
     }

     class HomePage extends StatefulWidget {

       @override
       _HomePageState createState() => _HomePageState();
     }

     class _HomePageState extends State<HomePage> {


       Future getData() async{
         http.Response response = await http.get("http://dummy.restapiexample.com/api/v1/employees");
         debugPrint(response.body);
       }

       @override
      void initState() {
        super.initState();
        getData();
      }

       @override
       Widget build(BuildContext context) {
         return Scaffold(
           appBar: AppBar(
             title: Text("Employees"),
             backgroundColor: Colors.green,
           ),
         );
       }
     }

pubspec.yaml

    name: myapp
    description: A new Flutter project.

    # The following defines the version and build number for your application.
    # A version number is three numbers separated by dots, like 1.2.43
    # followed by an optional build number separated by a +.
    # Both the version and the builder number may be overridden in flutter
    # build by specifying --build-name and --build-number, respectively.
    # In Android, build-name is used as versionName while build-number used as versionCode.
    # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
    # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
    # Read more about iOS versioning at
    # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
    version: 1.0.0+1

    environment:
      sdk: ">=2.1.0 <3.0.0"

    dependencies:
      flutter:
        sdk: flutter

      http: ^0.12.0+4

      # The following adds the Cupertino Icons font to your application.
      # Use with the CupertinoIcons class for iOS style icons.
      cupertino_icons: ^0.1.2

    dev_dependencies:
      flutter_test:
        sdk: flutter


    # For information on the generic Dart part of this file, see the
    # following page: https://dart.dev/tools/pub/pubspec

    # The following section is specific to Flutter.
    flutter:

      # The following line ensures that the Material Icons font is
      # included with your application, so that you can use the icons in
      # the material Icons class.
      uses-material-design: true

      # To add assets to your application, add an assets section, like this:
      # assets:
      #  - images/a_dot_burr.jpeg
      #  - images/a_dot_ham.jpeg

      # An image asset can refer to one or more resolution-specific "variants", see
      # https://flutter.dev/assets-and-images/#resolution-aware.

      # For details regarding adding assets from package dependencies, see
      # https://flutter.dev/assets-and-images/#from-packages

      # To add custom fonts to your application, add a fonts section here,
      # in this "flutter" section. Each entry in this list should have a
      # "family" key with the font family name, and a "fonts" key with a
      # list giving the asset and other descriptors for the font. For
      # example:
      fonts:
        - family: IndieFlower
          fonts:
            - asset: fonts/IndieFlower-Regular.ttf

      #
      # For details regarding fonts from package dependencies,
      # see https://flutter.dev/custom-fonts/#from-packages

【问题讨论】:

  • pubspec.yaml 文件依赖:flutter:sdk:flutter http:^0.12.0+4
  • 清理颤振并重试
  • @NavinKumar 仍然是同样的错误。
  • 我能够解决的最简单的方法是从 beta 频道更改为 master 频道。我建议任何面临这个问题的人也这样做。

标签: flutter visual-studio-code flutter-dependencies flutter-web flutter-packages


【解决方案1】:

不要使用 vscode run&debug 功能,使用这个命令来运行 flutter run -d web-server --web-hostname= --web-port= --profile -v ,用你的替换“ipaddress”和“freeport”系统输入

【讨论】:

    【解决方案2】:

    我看到您的 Flutter 版本是 1.13.6。 这个版本我也遇到了一些奇怪的问题,但是当我切换到dev频道时,所有问题都消失了。

    也试试这个:

     flutter channel dev
     flutter upgrade
    

    【讨论】:

    • 试了之后问题依旧。
    【解决方案3】:

    您是否尝试过重新启动 IDE?

    https://flutter.dev/docs/development/packages-and-plugins/using-packages

    如有必要,停止并重新启动应用程序如果包带来 特定于平台的代码(Java/Kotlin for Android,Swift/Objective-C for iOS),该代码必须内置到您的应用程序中。热重载和热 restart 仅更新 Dart 代码,因此应用程序的完全重启可能 在使用 包。

    【讨论】:

    • 你能用缩进的 pubspec 文件更新问题吗?
    • 嗨,我刚刚更新了代码下的整个 pubspec 文件。请看一下
    • 最近遇到类似问题时,我尝试了以下方法。步骤 1)创建一个全新的空白颤振项目。步骤 2) 更新 pub spec.yaml 文件。第 3 步)运行 flutter pub get,第 4 步)将前一个项目中的 dart 页面和资产复制到新项目中。步骤 5) 重新构建并再次测试。这让它对我有用。
    • @ArthurEKing 谢谢。它解决了这个问题。该应用程序正在为 Web 构建,但是当它尝试连接到浏览器实例时,我收到一条错误消息,提示“无法在 Chrome 中与应用程序实例建立连接。如果 Web 使用的 websocket 连接可能会发生这种情况工具无法正确建立连接,例如由于防火墙。”
    • 我很高兴它成功了!但是,是的,我希望我知道为什么会发生这种情况......我认为它与首次创建时的某些项目设置有关?不确定。无论哪种方式,希望它有所帮助!
    猜你喜欢
    • 2019-04-26
    • 2019-07-10
    • 2019-06-06
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    相关资源
    最近更新 更多