我正在用我的 Mac 处理 flutter。安装了示例代码,我在 flutter 类上收到错误 \nStatelessWidget、Widget、BuildContext 说
\n\nUndefined 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类似于 @Bensal 答案
您可以通过导入来完成
import 'package:flutter/cupertino.dart';
Run Code Online (Sandbox Code Playgroud)
或者
import 'package:flutter/material.dart';
Run Code Online (Sandbox Code Playgroud)
它会解决你的问题
归档时间: |
|
查看次数: |
11133 次 |
最近记录: |