問題描述
導入 Http/http.dart 包時出錯 (error in importing Http/http.dart package)
我用適當的縮進更新了依賴項,然後顫振 pub get 然後在代碼中導入它。也嘗試重新啟動我的ide。當我嘗試構建應用程序時彈出錯誤。
錯誤:
無法找到某些源的模塊,這通常是導入錯誤的結果,包中缺少依賴項(或者可能需要將 dev_dependency 移動到真正的依賴項),或者構建失敗(如果導入生成的文件)。
請檢查以下導入:
import 'package:http/http.dart' as http;
from myapp|lib/myapp.dart at 83:1
Code:
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
<
參考解法
方法 1:
Have you tried restarting your IDE?
https://flutter.dev/docs/development/packages‑and‑plugins/using‑packages
Stop and restart the app, if necessary If the package brings platform‑specific code (Java/Kotlin for Android, Swift/Objective‑C for iOS), that code must be built into your app. Hot reload and hot restart only update the Dart code, so a full restart of the app might be required to avoid errors like MissingPluginException when using the package.
方法 2:
I see your Flutter
version is 1.13.6. I also experienced some strange problems with this version, but when I switched to dev
channel all the problems are gone.
Try this too:
flutter channel dev
flutter upgrade
方法 3:
do not use vscode run&debug feature , use this command to run flutter run ‑d web‑server ‑‑web‑hostname= ‑‑web‑port= ‑‑profile ‑v ,replace "ipaddress" and "freeport" with your system input
(by Ankit Singh、Mário Garcia、Spatz、vikas bhutani)