So following this tutorial for a simple login UI in Flutter
https://medium.com/better-programming/simple-firebase-login-flow-in-flutter-6f44c2b5c58a
Apparently this package in flutter isn't being imported correctly. The particular lines that are not working are these 3 lines of code
import 'package:provider/provider.dart';
ChangeNotifierProvider<AuthService>( //TODO: authservices and provider pages
future: Provider.of<AuthService>(context).getUser(),
I have been searching a bunch and tried reading the docs and couldn't get any easy answers, but anyway thank you to anyone who gets me the answer to this
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'home_page.dart';
import 'auth.dart';
import 'login_page.dart';
void main() => runApp(
ChangeNotifierProvider<AuthService>( //TODO: authservices and provider pages
child: MyApp(),
builder: (BuildContext context) {
return AuthService();
},
),
);
class MyApp extends StatelessWidget {
// This widget is the root of your application.
#override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: FutureBuilder(
future: Provider.of<AuthService>(context).getUser(),
builder: (context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return snapshot.hasData ? HomePage() : LoginPage();
} else {
return Container(color: Colors.white);
}
},
),
);
}
}
the pubspec.yaml file for anyone looking
name: login_flutter_app
description: A new Flutter application.
# 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
# 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: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages
Had to put these into the project
cupertino_icons: ^0.1.2
flutter_blue: ^0.6.3+1
provider: ^4.0.4
Just add dependency provider: ^4.1.1 in pubspec.yaml file. it looks like bellow
dependencies:
flutter:
sdk: flutter
provider: ^4.1.1
Related
I made a mistake learning the image widget.I browsed dozens of forums and watched videos but it never improved, I will be glad if you help.
The scripts I wrote are as follows:
main.dart
return Center(
child: MaterialApp(
title: 'Flutter Learning',
debugShowCheckedModeBanner: false,
theme: ThemeData().copyWith(
cardTheme: CardTheme(
shape: StadiumBorder(),
),
appBarTheme: AppBarTheme(
centerTitle: true,
backgroundColor: Colors.transparent,
elevation: 0,
foregroundColor: Colors.black,
systemOverlayStyle: SystemUiOverlayStyle.light,
)),
home: ImageWidgetLearn(),
),
);
image_learn.dart
import 'package:flutter/material.dart';
class ImageWidgetLearn extends StatelessWidget {
String appBarTitle = "Image Learn";
#override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(appBarTitle),
bottom: PreferredSize(
child: Container(
color: Colors.black45,
height: 0.5,
),
preferredSize: Size.fromHeight(1.0),
)),
body: Column(
children: [
Text("selam aleyküm"),
Image.asset('assets/images/appleandbook.png')
],
),
);
}
}
pubspec.yaml
name: flutterfulllearn
description: A new Flutter project.
# The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# 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.17.5 <3.0.0"
# Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions
# consider running `flutter pub upgrade --major-versions`. Alternatively,
# dependencies can be manually updated by changing the version numbers below to
# the latest version available on pub.dev. To see which dependencies have newer
# versions available, run `flutter pub outdated`.
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
dev_dependencies:
flutter_test:
sdk: flutter
# The "flutter_lints" package below contains a set of recommended lints to
# encourage good coding practices. The lint set provided by the package is
# activated in the `analysis_options.yaml` file located at the root of your
# package. See that file for information about deactivating specific lint
# rules and activating additional ones.
flutter_lints: ^2.0.0
# 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 packages.
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
assets:
- assets\images\appleandbook.png
# 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: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages
and error message
[error message like this][1]
[1]: https://i.stack.imgur.com/b5ySj.png
In your pubspec.yaml file change the assets path like this
assets/images/appleandbook.png
Change the backslash \ by slash /
It seems you have messed with slashes. Instead of / you should use \. So that the code in your yaml file should look like next
assets:
- assets\images\appleandbook.png
After that, dont forget to recompile your app so that resources are included
I am trying to make an app where in by pressing the flat Button the image should change
This is my Code .Here the image is not able to load .It is throwing some exception despite my
pubspec.yaml file being correct.Can someone help me out.I am trying to use a random function inside my flat button to update my images on pressed.
import 'package:flutter/material.dart';
import 'dart:math';
void main() {
runApp(Magic());
}
class Magic extends StatefulWidget {
const Magic({Key? key}) : super(key: key);
#override
_MagicState createState() => _MagicState();
}
class _MagicState extends State<Magic> {
var i=1;
#override
Widget build(BuildContext context) {
return MaterialApp(
home:Scaffold(
backgroundColor:Colors.blue,
appBar: AppBar(
centerTitle: true,
title:Text( 'Ask Me Anything',
style: TextStyle(
color: Colors.white,
),
),
backgroundColor: Colors.blue[900],
),
body: Container(
child:FlatButton(
onPressed: () {
setState(() {
i = Random().nextInt(5)+1;
});
},
child:Image(
image:AssetImage('images/dice$i.png'),
)
),
),
)
);
}
}
My Pubspec.yaml file
name: magicball
description: A new Flutter project.
# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# 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.12.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.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
assets:
- images/ball1.png
- images/ball2.png
- images/ball3.png
- images/ball4.png
- images/ball5.png
- images/dice1.png
- images/dice2.png
- images/dice3.png
- images/dice4.png
- images/dice5.png
- images/dice6.png
# 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: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages
This is the error
The following assertion was thrown resolving an image codec:
Unable to load asset: images/dice4.png
When the exception was thrown, this was the stack:
#0 PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:224:7)
<asynchronous suspension>
#1 AssetBundleImageProvider._loadAsync (package:flutter/src/painting/image_provider.dart:672:14)
<asynchronous suspension>
Image provider: AssetImage(bundle: null, name: "images/dice4.png")
Image key: AssetBundleImageKey(bundle: PlatformAssetBundle#70fe4(), name: "images/dice4.png", scale: 1.0)
====================================================================================================
create an assets folder and put the images folder there.
and change the path to - assets/images/ball1.png. or you can just put the reference of the folder there.
I'm using the flutter camera plugin to record a video but the code keeps throwing:
The method '[]' was called on null.
Receiver: null
Tried calling: [](0)
when I try to get the first camera (cameras.first or cameras[0]). This is happening even with the examples given in the plugin docs: https://pub.dev/packages/camera/example
Here's my pubspec.yaml:
# #format
name: camera_example
description: A camera example app
# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: "none" # Remove this line if you wish to publish to pub.dev
# 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.7.0 <3.0.0"
dependencies:
archive: ^3.1.2
bloc: ^7.0.0
cached_network_image: ^3.1.0
cupertino_icons: ^1.0.3
dio: null
equatable: ^2.0.3
eva_icons_flutter: ^3.0.0
flutter:
sdk: flutter
flutter_bloc: ^7.1.0
flutter_secure_storage: ^4.2.1
flutter_svg: ^0.22.0
font_awesome_flutter: ^8.8.1
http: ^0.13.3
image_picker: ^0.8.2
introduction_screen: ^2.1.0
line_icons: null
logger: null
path_provider: ^2.0.2
provider: ^5.0.0
rxdart: ^0.27.1
shared_preferences: ^2.0.6
video_player: ^2.1.10
camera:
# path: ./
carousel_slider: ^4.0.0
marquee: ^2.2.0
responsive_builder: ^0.4.1
page_indicator: ^0.4.1
path: ^1.8.0
permission_handler:
dev_dependencies:
flutter_launcher_icons: ^0.9.0
flutter_native_splash: ^1.2.0
flutter_native_splash:
color: "#000000"
image: "assets/images/bg.png"
android: true
ios: true
flutter_icons:
android: "launcher_icon"
ios: true
image_path: "assets/images/icon.png"
# 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:
- assets/videos/
- assets/
# - 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: TikTokIcons
fonts:
- asset: assets/fonts/TikTokIcons.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages
I believe I have done everything according to the documentation but I keep on getting the error. I am testing on a real android(android 10) device.
The example code I'm referring to:
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
List<CameraDescription> cameras;
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
cameras = await availableCameras();
runApp(CameraApp());
}
class CameraApp extends StatefulWidget {
#override
_CameraAppState createState() => _CameraAppState();
}
class _CameraAppState extends State<CameraApp> {
CameraController controller;
#override
void initState() {
super.initState();
controller = CameraController(cameras[0], ResolutionPreset.max);
controller.initialize().then((_) {
if (!mounted) {
return;
}
setState(() {});
});
}
#override
void dispose() {
controller?.dispose();
super.dispose();
}
#override
Widget build(BuildContext context) {
if (!controller.value.isInitialized) {
return Container();
}
return MaterialApp(
home: CameraPreview(controller),
);
}
}
PS: I'm new to flutter
I am trying to load an image but i keep getting this error Exception has occurred.
FlutterError (Unable to load asset: assests/1.png),
this is what have tried so far, the image is located in my assets folder in my root directory
name: wallet_app
description: A new Flutter application.
# 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
cloud_firestore: ^0.14.0
provider: ^3.0.0+1
email_validator: ^1.0.0
bubble_bottom_bar: ^1.2.0
fluttertoast: ^7.0.1
flutter_icons : 1.1.0
flutter_spinkit: "^4.1.2"
firebase_core : ^0.5.0
# 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:
assets:
- assets/1.png
- assets/newdp.png
# 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:
# - 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: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages
and this is how i implement it
return Container(
margin: EdgeInsets.only(top: 80),
child: Column(
children: <Widget>[
Center(
child: Image.asset(
"assests/1.png",
width: 600.0,
height: 240.0,
fit: BoxFit.cover,
),),
Center( child:Text("Hello tlululuhere"))]));
........................................................................................................................................................................................................
youre getting the wrong path:
Image.asset(
"assests/1.png",
must be :
Image.asset(
"assets/1.png",
Hello I am trying to create a list item in flutter. I have created layout like this but image is not displaying.
Does anyone know whats reason of it ?
import 'package:flutter/material.dart';
class CommonListItem extends StatefulWidget {
#override
State<StatefulWidget> createState() => new _CommonListItemState();
}
class _CommonListItemState extends State<CommonListItem> {
#override
Widget build(BuildContext context) {
return new Scaffold(
body: Container(
child: new Column(
children: <Widget>[
Container(
height: 100.0,
width: 100.0,
child: new Image(image: AssetImage("assets/images/mountains.jpg")),
)
]
),
),
);
}
}
pubspec.yml
name: xx
description: xx
dependencies:
flutter:
sdk: flutter
cloud_firestore: 0.7.4
firebase_auth: 0.5.18
# 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://www.dartlang.org/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.io/assets-and-images/#resolution-aware.
# For details regarding adding assets from package dependencies, see
# https://flutter.io/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: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.io/custom-fonts/#from-packages
new Image(image: AssetImage("assets/images/mountains.jpg")),
With the code above make sure you have created the directories (case sensitive!) in the root of the application e.g c:/myapp/assets/images/
Then in your pubspec file you need to un-comment that line pointing to the assets
# To add assets to your application, add an assets section, like this:
assets:
- assets/images/*
You don't have to list every item in the folder, use the asterisk to include all files.
To use images from assets:
Image.asset("assets/images/source.jpg")
Just make sure you also have the asset set up in your pubspec.yaml.
Try to do this in your pubsec.yaml
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
assets:
- assets/
And after that use assets
You introduce wrong url from assets , if your folder is called images your url is : images/mountains.jpg so you nee to change code :
new Image(image: AssetImage("images/mountains.jpg"))
Be careful about tabs in Flutter. have a look at the belowing link.
FlutterError: Unable to load asset