# Flutter: AndroidX migration

I recently upgraded firebase_auth and my project stopped compiling because they've migrated to AndroidX, meaning I had to migrate my whole project as well. Here's how I did it.

After upgrading firebase_auth version past , I started getting this compile error:

~/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_auth-0.11.1+5/android/src/main/java/io/flutter/plugins/firebaseauth/FirebaseAuthPlugin.java:9: error: cannot find symbol
import androidx.annotation.NonNull;
^
symbol:   class NonNull
location: package androidx.annotation
~/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_auth-0.11.1+5/android/src/main/java/io/flutter/plugins/firebaseauth/FirebaseAuthPlugin.java:10: error: cannot find symbol
import androidx.annotation.Nullable;
^
...
BUILD FAILED in 28s
*******************************************************************************************
The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.
*******************************************************************************************



The first thing the page on Flutter migration to AndroidX tells you to do is to set compileSdkVersion to at least 28 in app/build.gradle.

## Migrating automatically

Then you open the android subfolder in Android Studio, and click Refactor, Migrate to AndroidX.

To upgrade the gradle dependency to 3.4.0, I modified the gradle wrapper version in android/gradle/wrapper/gradle-wrapper.properties to 5.1.1:

...
...


and the build.gradle:

...
...


To make sure it downloaded the new gradle, I triggered a build. Now the Gradle plugin complained that I need to update the Kotlin plugin:

The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.10 and higher.
The following dependencies do not satisfy the required version:


I checked https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-gradle-plugin to find the latest version and changed build.gradle to:

buildscript {
ext.kotlin_version = '1.3.31'
...


Now the compilation went a bit further and failed with:

Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find org.jetbrains.kotlin:kotlin-stdlib-jre7:1.3.10.


I had to change this dependency in app/build.gradle to:

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:\$kotlin_version"
...


After that the compilation went a bit further still and failed with the initial error: cannot find symbol class NonNull error related to Firebase.

Despite trying repeatedly to "Migrate AndroidX automatically", it would tell me there is nothing to migrate. So I had to resort to manual migration.

## Manual migration

https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility and https://developer.android.com/jetpack/androidx/migrate list out the package mappings. I ended up changing the only two dependencies to the Android Support library I had in app/build.gradle:

dependencies {
...
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
...


and appending to gradle.properties:

android.enableJetifier=true
android.useAndroidX=true


Finally the project compiled! Hopefully Flutter updates the new project templates so the migration is already done for us.