StatelessWidget:类只能扩展其他类。dart(extends_non_class) - 问题

J4J*_*ava 5 flutter

我正在用我的 Mac 处理 flutter。安装了示例代码,我在 flutter 类上收到错误 \nStatelessWidget、Widget、BuildContext 说

\n\n
Undefined class \'StatelessWidget\'.dart(undefined_class)\nClasses can only extend other classes.dart(extends_non_class)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我该如何解决这个问题。

\n\n

我尝试了\n “颤振包获取”并得到了以下输出\n[ttt] flutter packages get\n在ttt中运行“flutter packages get”...0.5s\nexit code 0

\n\n

还尝试过\n “颤振医生”

\n\n
\nDoctor 摘要(要查看所有详细信息,请运行 flutter doctor -v):\n[\xe2\x9c\x93] Flutter(频道稳定,v1.0.0,在 Mac OS X 10.14.3 18D109 上,区域设置 en-IN)\ n[\xe2\x9c\x97] Android 工具链 - 为 Android 设备进行开发\n \xe2\x9c\x97 无法找到 Android SDK。\n 从以下位置安装 Android Studio:https://developer.android.com/studio/index .html\n 首次启动时,它将帮助您安装 Android SDK 组件。\n(或访问 https://flutter.io/setup/#android-setup 了解详细说明)。\n 如果已安装 Android SDK到自定义位置,请将 $ANDROID_HOME 设置为该位置。\n 您可能还想将其添加到 PATH 环境变量中。\n\n[!] iOS 工具链 - 为 iOS 设备开发 (Xcode 10.1)\n \xe2\ x9c\x97 libimobiledevice 和 ideviceinstaller 未安装。要使用 Brew 安装,请运行:\nbrew update\nbrewinstall --HEAD usbmuxd\nbrewlinkusbmuxd\nbrewinstall --HEADlibimobiledevice\nbrewinstallideviceinstaller\n\xe2\x9c\x97 ios-deploy 未安装。使用 Brew 安装:\nbrew install ios-deploy\n\xe2\x9c\x97 CocoaPods 未安装。\n CocoaPods 用于检索 iOS 平台端的插件代码,以响应 Dart 端的插件使用情况。\n 如果不解决 iOS 与 CocoaPods 的依赖关系,插件将无法在 iOS 上运行。\n 有关详细信息,请参阅 https://flutter.io/platform-plugins\n 要安装:\nbrew install cocoapods\n pod setup\ n[!] Android Studio(未安装)\n[!] 连接的设备\n ! 没有可用的设备\n\n!医生发现了 4 类问题。\n
\n\n
import \'dart:async\';\nimport \'package:flutter/material.dart\';\nimport \'package:flutter/services.dart\';\n\nvoid main() {\n  runApp(FlutterView());\n}\n\nclass FlutterView extends StatelessWidget {\n\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      title: \'Flutter View\',\n      theme: ThemeData(\n        primarySwatch: Colors.grey,\n      ),\n      home: MyHomePage(),\n    );\n  }\n}\n\nclass MyHomePage extends StatefulWidget {\n  @override\n  _MyHomePageState createState() => _MyHomePageState();\n}\n\nclass _MyHomePageState extends State<MyHomePage> {\n  static const String _channel = \'increment\';\n  static const String _pong = \'pong\';\n  static const String _emptyMessage = \'\';\n  static const BasicMessageChannel<String> platform =\n      BasicMessageChannel<String>(_channel, StringCodec());\n\n  int _counter = 0;\n\n  @override\n  void initState() {\n    super.initState();\n    platform.setMessageHandler(_handlePlatformIncrement);\n  }\n\n  Future<String> _handlePlatformIncrement(String message) async {\n    setState(() {\n      _counter++;\n    });\n    return _emptyMessage;\n  }\n\n  void _sendFlutterIncrement() {\n    platform.send(_pong);\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      body: Column(\n        crossAxisAlignment: CrossAxisAlignment.start,\n        children: <Widget>[\n          Expanded(\n            child: Center(\n              child: Text(\n                \'Platform button tapped $_counter time${ _counter == 1 ? \'\' : \'s\' }.\',\n                style: const TextStyle(fontSize: 17.0))\n            ),\n          ),\n          Container(\n            padding: const EdgeInsets.only(bottom: 15.0, left: 5.0),\n            child: Row(\n              children: <Widget>[\n                Image.asset(\'assets/flutter-mark-square-64.png\', scale: 1.5),\n                const Text(\'Flutter\', style: TextStyle(fontSize: 30.0)),\n              ],\n            ),\n          ),\n        ],\n      ),\n      floatingActionButton: FloatingActionButton(\n        onPressed: _sendFlutterIncrement,\n        child: const Icon(Icons.add),\n      ),\n    );\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何解决这个编译问题?

\n\n

截屏

\n

Kas*_*nga 6

类似于 @Bensal 答案

您可以通过导入来完成

import 'package:flutter/cupertino.dart';
Run Code Online (Sandbox Code Playgroud)

或者

import 'package:flutter/material.dart';
Run Code Online (Sandbox Code Playgroud)

它会解决你的问题


J4J*_*ava 1

我重新启动了 VSCODE IDE 但没有用。甚至还卸载了 Dart 和 Flutter 库。

然后我所做的就是删除 flutter 库包并下载新包,它起作用了!