LateInitializationError related to image in Flutter

import 'dart:io'; import 'package:google_ml_kit/google_ml_kit.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:image_picker/image_picker.dart'; class ImageNote extends StatefulWidget { static String id='image-note'; @override _ImageNoteState createState() => _ImageNoteState(); } class _ImageNoteState extends State<ImageNote> { String result = ""; late File image; ImagePicker imagePicker = ImagePicker(); captureFromGallery() async { XFile? pickedFile = await imagePicker.pickImage(source: ImageSource.gallery); image = File(pickedFile!.path); setState(() { image; //Do the extract text from Image textFromImage(); }); } captureFromCamera() async { XFile? pickedFile = await imagePicker.pickImage(source: ImageSource.camera); image = File(pickedFile!.path); setState(() { image; textFromImage(); }); } textFromImage() async { // final FirebaseVisionImage firebaseVisionImage = // FirebaseVisionImage.fromFile(image); final InputImage inputImage = InputImage.fromFile(image); final TextDetector textDetector = GoogleMlKit.vision.textDetector(); final RecognisedText recognisedText = await textDetector.processImage(inputImage); // final TextRecognizer recognizer = FirebaseVision.instance.textRecognizer(); // VisionText visionText = await recognizer.processImage(firebaseVisionImage); result = ""; setState(() { for (TextBlock block in recognisedText.blocks) { for (TextLine line in block.lines) { for (TextElement element in line.elements) { result += element.text + " "; } } result += "\n\n"; } }); } @override Widget build(BuildContext context) { return Scaffold( body: Container( decoration: BoxDecoration( image: DecorationImage( image: AssetImage('assets/background.png'), fit: BoxFit.cover), ), child: Column( children: [ SizedBox(width: 100.0), //Result Container Container( height: 280.0, width: 250.0, margin: EdgeInsets.only(top: 70.0), padding: EdgeInsets.only(left: 28.0, bottom: 5.0, right: 18.0), child: SingleChildScrollView( child: Container( margin: EdgeInsets.only(top: 50.0), child: Padding( padding: EdgeInsets.all(12.0), child: Text( result, style: TextStyle(fontSize: 16.0), textAlign: TextAlign.justify, ), ), ), ), decoration: BoxDecoration( image: DecorationImage( image: AssetImage('assets/note.png'), fit: BoxFit.cover, ), ), ), Container( margin: EdgeInsets.only(top: 20.0, right: 140.0), child: Stack( children: [ Stack( children: [ Center( child: Image.asset( 'assets/output.jpg', height: 240.0, width: 240.0, ), ), ], ), Center( child: TextButton( onPressed: () { captureFromGallery(); }, onLongPress: () { captureFromCamera(); }, child: Container( margin: EdgeInsets.only(top: 25.0), child: image != null ? Image.file( image, width: 140.0, height: 192.0, fit: BoxFit.fill, ) : Container( width: 240.0, height: 200.0, child: Icon( Icons.camera_front, size: 100.0, color: Colors.grey, ), ), ), ), ), ], ), ), ], ), ), ); } } 

This is my code and I get the following error and I am not even sure which image is this exactly about:

The following LateError was thrown building ImageNote(dirty, state: _ImageNoteState#8b383): LateInitializationError: Field 'image' has not been initialized.

I have already looked everywhere... so, If anyone could help! Any help would be great!

2

1 Answer

Here's where the error is

class _ImageNoteState extends State<ImageNote> { String result = ""; late File image;// Here ImagePicker imagePicker = ImagePicker(); 

This happened because you are telling flutter you are going to initialize the File later and it didn't detect it.

An alternative is to make it nullable by adding?

Like this

class _ImageNoteState extends State<ImageNote> { String result = ""; File? image;// this is better ImagePicker imagePicker = ImagePicker(); 
0

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like