text recognition from an image flutter firebase

1,427

I suppose you have not connected your app with firebase. Add your project to firebase and add google-services.json to your app as instructed in the console. Only then your app will be able to call firebase_ml_vision APIs successfully.

Share:
1,427
Oumaima Sh
Author by

Oumaima Sh

Updated on December 12, 2022

Comments

  • Oumaima Sh
    Oumaima Sh over 1 year

    I want to detect the text from an image but everytime I run the program I have this error , I tried to change the version of firebase but in vain , and also I tried to migrate my projet to androidx

    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037): java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.inwi.inwi_app. Make sure to call FirebaseApp.initializeApp(Context) first.
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@17.0.0:234)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at com.google.firebase.ml.vision.FirebaseVision.getInstance(Unknown Source)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at io.flutter.plugins.firebasemlvision.FirebaseMlVisionPlugin.handleDetection(FirebaseMlVisionPlugin.java:83)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at io.flutter.plugins.firebasemlvision.FirebaseMlVisionPlugin.onMethodCall(FirebaseMlVisionPlugin.java:45)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:222)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:96)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:643)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at android.os.MessageQueue.nativePollOnce(Native Method)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at android.os.MessageQueue.next(MessageQueue.java:323)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at android.os.Looper.loop(Looper.java:136)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at android.app.ActivityThread.main(ActivityThread.java:6682)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at java.lang.reflect.Method.invoke(Native Method)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
    E/MethodChannel#plugins.flutter.io/firebase_ml_vision(30037):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
    E/flutter (30037): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: PlatformException(error, Default FirebaseApp is not initialized in this process com.inwi.inwi_app. Make sure to call FirebaseApp.initializeApp(Context) first., null)
    E/flutter (30037): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:564:7)
    E/flutter (30037): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:316:33)
    E/flutter (30037): <asynchronous suspension>
    E/flutter (30037): #2      MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:344:48)
    E/flutter (30037): <asynchronous suspension>
    E/flutter (30037): #3      TextRecognizer.processImage (package:firebase_ml_vision/src/text_recognizer.dart:40:38)
    E/flutter (30037): <asynchronous suspension>
    E/flutter (30037): #4      HomePage.readText (package:inwi_app/HomePage.dart:29:47)
    E/flutter (30037): <asynchronous suspension>
    E/flutter (30037): #5      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:635:14)
    E/flutter (30037): #6      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:711:32)
    E/flutter (30037): #7      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
    E/flutter (30037): #8      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11)
    E/flutter (30037): #9      TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:275:7)
    E/flutter (30037): #10     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:455:9)
    E/flutter (30037): #11     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:75:13)
    E/flutter (30037): #12     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:102:11)
    E/flutter (30037): #13     _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19)
    E/flutter (30037): #14     _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
    E/flutter (30037): #15     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
    E/flutter (30037): #16     _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
    E/flutter (30037): #17     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
    E/flutter (30037): #18     _rootRunUnary (dart:async/zone.dart:1136:13)
    E/flutter (30037): #19     _CustomZone.runUnary (dart:async/zone.dart:1029:19)
    E/flutter (30037): #20     _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
    E/flutter (30037): #21     _invoke1 (dart:ui/hooks.dart:250:10)
    E/flutter (30037): #22     _dispatchPointerDataPacket (dart:ui/hooks.dart:159:5)
    

    here is my pubspec.yml

    name: inwi_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:
      cloud_firestore:
      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
      image_picker:
      firebase_ml_vision:
    
    
    
    # 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
    

    and my build.gradle

    def localProperties = new Properties()
    def localPropertiesFile = rootProject.file('local.properties')
    if (localPropertiesFile.exists()) {
        localPropertiesFile.withReader('UTF-8') { reader ->
            localProperties.load(reader)
        }
    }
    
    def flutterRoot = localProperties.getProperty('flutter.sdk')
    if (flutterRoot == null) {
        throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
    }
    
    def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
    if (flutterVersionCode == null) {
        flutterVersionCode = '1'
    }
    
    def flutterVersionName = localProperties.getProperty('flutter.versionName')
    if (flutterVersionName == null) {
        flutterVersionName = '1.0'
    }
    
    apply plugin: 'com.android.application'
    apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
    
    android {
        compileSdkVersion 28
    
        lintOptions {
            disable 'InvalidPackage'
        }
    
        defaultConfig {
            // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
            applicationId "com.inwi.inwi_app"
            minSdkVersion 16
            targetSdkVersion 28
            versionCode flutterVersionCode.toInteger()
            versionName flutterVersionName
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
            multiDexEnabled true
        }
    
        buildTypes {
            release {
                // TODO: Add your own signing config for the release build.
                // Signing with the debug keys for now, so `flutter run --release` works.
                signingConfig signingConfigs.debug
            }
        }
    }
    
    flutter {
        source '../..'
    }
    
    dependencies {
        implementation 'androidx.multidex:multidex:2.0.0'
    
        api 'com.google.firebase:firebase-ml-vision-image-label-model:18.0.0'
    
        implementation 'androidx.multidex:multidex:2.0.1'
        //implementation 'com.google.firebase:firebase-ml-vision:22.0.0'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test:runner:1.1.0'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
    }
    

    please could someone help me , I ve been trying to solve it it almost 2 days