Adding Firebase to flutter project, breaks the project

344

It's due to AndroidX compatibility, Create a new project and follow the steps below:

  1. In order for your project to be AndroidX compatible, you need to add the following two lines to your gradle.properties file:

    android.useAndroidX = true
    android.enableJetifier = true
    
  2. Make sure in your app build.gradle file that the compileSdkVersion and targetSdkVersion are both set to 28

  3. Remove all the lines with the comment "Remove" from your main app build.gradle file:

    android {
        compileSdkVersion 28
    
    lintOptions {
        disable 'InvalidPackage'
    }
    
    defaultConfig {
        applicationId "YOUR_APPLICATION_ID"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" //Remove
    }
    
    buildTypes {
        release {
            signingConfig signingConfigs.debug
        }
       }
     }
    
    
    dependencies {
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2' // Remove
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' // Remove
    }
    
  4. If you try to build the project you will get an error that has something to do with the core library for AndroidX, To fix it, add the code in the subprojects category in your project level build.gradle file:

    buildscript {
        repositories {
        google()
        jcenter()
        }
    
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }
    
    subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'androidx.core'
                        && !details.requested.name.contains('androidx') ) {
                    details.useVersion "1.0.1"
                }
            }
        }
      }
    }
    

NOTE 1: In the 4th step rememeber that the subprojects category should be bellow the dependecies category, if not present then copy and paste the code given.

I would prefer to try the above steps in Android Studio, Save all the files and restart the project, Add the Firebase dependencies and whatever the changes are told to do in the documentation: Documentation. It would work.

BEST OF LUCK!!

Share:
344
SowingFiber
Author by

SowingFiber

Biography I used to have a job at a Publisher. But I quit, to follow my passion as a programmer/developer. Currently Working as Jr. Android Developer at YouthBuzz

Updated on December 14, 2022

Comments

  • SowingFiber
    SowingFiber over 1 year

    I followed several tutorials to add firebase to my flutter project. But no matter what I do, my project breaks with the same exact failure.

    I tried creating new projects, and got the same exact failure.

    For now, I followed this tutorial.

    Right after changing the app level build.gradle file, I start to build my app. I use flutter run to run the app on my physical device.

    Every single time, I get hit by the same exact error, and scouring on the internet, didn't solve the issue, hence the question.

    My Error:

    * Error running Gradle:
    ProcessException: Process "D:\Projects\flutter_creds\android\gradlew.bat" exited abnormally:
    Starting a Gradle Daemon, 1 incompatible and 1 stopped Daemons could not be reused, use --status for details
    
    
    FAILURE: Build failed with an exception.
    
    * Where:
    Build file 'D:\Projects\flutter_creds\android\app\build.gradle' line: 24
    
    * What went wrong:
    A problem occurred evaluating project ':app'.
    > ASCII
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 1m 58s
      Command: D:\Projects\flutter_creds\android\gradlew.bat app:properties
    
    Please review your Gradle project setup in the android/ folder.
    Exited (sigterm)
    
    

    The error is at line 24 of my app level build.gradle file. However, that is the line, I haven't changed. Here is my build.gradle (app level)

    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 plugin: 'kotlin-android'
    apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
    
    android {
        compileSdkVersion 28
    
        sourceSets {
            main.java.srcDirs += 'src/main/kotlin'
        }
    
        lintOptions {
            disable 'InvalidPackage'
        }
    
        defaultConfig {
            // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
            applicationId "com.sowingfiber.flutter_creds"
            minSdkVersion 16
            targetSdkVersion 28
            versionCode flutterVersionCode.toInteger()
            versionName flutterVersionName
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
    
        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 "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }
    apply plugin: 'com.google.gms.google-services'
    
  • SowingFiber
    SowingFiber over 4 years
    Actually, this was a weird one. I was using VS code to work on this project. I switched to android studio and the error changed to wrong package name in manifest file. I changed the package name and it worked. All the other settings you had suggested, were not necessary this time. I wonder, what is wrong with VSCode that it gives a different error?