Reputation: 61
I am working with flutter with my Mac. installed the sample code and i get the error on the flutter classes StatelessWidget, Widget, BuildContext saying that
Undefined class 'StatelessWidget'.dart(undefined_class)
Classes can only extend other classes.dart(extends_non_class)
How do i resolve this issue.
I tried "flutter packages get" and got the below output [ttt] flutter packages get Running "flutter packages get" in ttt... 0.5s exit code 0
Also tried "flutter doctor"
Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, v1.0.0, on Mac OS X 10.14.3 18D109, locale en-IN) [✗] Android toolchain - develop for Android devices ✗ Unable to locate Android SDK. Install Android Studio from: https://developer.android.com/studio/index.html On first launch it will assist you in installing the Android SDK components. (or visit https://flutter.io/setup/#android-setup for detailed instructions). If Android SDK has been installed to a custom location, set $ANDROID_HOME to that location. You may also want to add it to your PATH environment variable. [!] iOS toolchain - develop for iOS devices (Xcode 10.1) ✗ libimobiledevice and ideviceinstaller are not installed. To install with Brew, run: brew update brew install --HEAD usbmuxd brew link usbmuxd brew install --HEAD libimobiledevice brew install ideviceinstaller ✗ ios-deploy not installed. To install with Brew: brew install ios-deploy ✗ CocoaPods not installed. CocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side. Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS. For more info, see https://flutter.io/platform-plugins To install: brew install cocoapods pod setup [!] Android Studio (not installed) [!] Connected device ! No devices available ! Doctor found issues in 4 categories.
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
runApp(FlutterView());
}
class FlutterView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter View',
theme: ThemeData(
primarySwatch: Colors.grey,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
static const String _channel = 'increment';
static const String _pong = 'pong';
static const String _emptyMessage = '';
static const BasicMessageChannel<String> platform =
BasicMessageChannel<String>(_channel, StringCodec());
int _counter = 0;
@override
void initState() {
super.initState();
platform.setMessageHandler(_handlePlatformIncrement);
}
Future<String> _handlePlatformIncrement(String message) async {
setState(() {
_counter++;
});
return _emptyMessage;
}
void _sendFlutterIncrement() {
platform.send(_pong);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Expanded(
child: Center(
child: Text(
'Platform button tapped $_counter time${ _counter == 1 ? '' : 's' }.',
style: const TextStyle(fontSize: 17.0))
),
),
Container(
padding: const EdgeInsets.only(bottom: 15.0, left: 5.0),
child: Row(
children: <Widget>[
Image.asset('assets/flutter-mark-square-64.png', scale: 1.5),
const Text('Flutter', style: TextStyle(fontSize: 30.0)),
],
),
),
],
),
floatingActionButton: FloatingActionButton(
onPressed: _sendFlutterIncrement,
child: const Icon(Icons.add),
),
);
}
}
how to resolve this compile issue?
Upvotes: 5
Views: 12673
Reputation: 1
Add flutter_bloc:
dependency in your pubspec.yaml file. And add
import 'package:flutter_bloc/flutter_bloc.dart';
in your code
Upvotes: 0
Reputation: 1
Just save ur flutter zip file u download . When each time u face same problem delete the previous and replace it with it . It will be ok 😉
Upvotes: 0
Reputation: 9
Delete the flutter package and redownload the new flutter package. Make sure your kotlin package is up to date
Upvotes: 0
Reputation: 1935
Similar to @Bensal Answer
You can do it by importing
import 'package:flutter/cupertino.dart';
Or
import 'package:flutter/material.dart';
It will solve your problem
Upvotes: 6
Reputation: 4110
In my case just adding this
import 'package:flutter/cupertino.dart';
cleared all the issues.
If this doesnt work check if there are unused imorts, remove it and run pub get. This should work.
Upvotes: 2
Reputation: 24097
I just had the same problem.
Make sure you have not defined or haven't imported a class that hides something from flutter (or even edited a core Flutter class like possibly J4Java's answer which is what possibly fixed that issue).
I was importing a State class by accident, removing the import made it all work again.
Upvotes: 0
Reputation: 61
I restarted VSCODE IDE but did not worked. Even uninstalled the Dart and Flutter library also.
Then what i did is by removing the flutter library package and downloaded new package and it worked!
Upvotes: 1