Si has trabajado creando apps para Android habrás visto que se ha liberado el proyecto AndroidX. Este pequeño cambio es la razón de que aparezan errores como «cannot resolve import» con las librerías appcompat o support. El objetivo de esta entrada no es contarte para qué sirve AndroiX ni por qué se ha creado, sino ayudarte a adaptar una app a AndroidX de la forma menos dolorosa posible.
Lo primero que hay que hacer es refactorizar el proyecto usando la librería de Android Studio, es tan sencillo como Menú Superior -> Refactor -> Migrate to AndroidX… Tras esto te preguntará si quieres hacer un guardado en .zip del proyecto (yo no lo veo necesario si estás bajo un control de versiones) y luego te pedirá confirmación en la barra inferior.
Una vez hecho esto, la parte principal estará resuelta. Y hasta aquí llega la documentación.
Lo que no te cuentan en la documentación es que las librerías han cambiado y has dejado de poder importarlas, así que el proyecto va a dar errores por todas partes. Lo más común es que dé errores al importar librerías en las Activities o que te diga que hay un error en el XML. Para eso hay que eliminar los imports que están dado error y sustituirlos por otros nuevos. Para eso te dejo aquí un listado de equivalencias de clases de appcompat y support con android x:
androidx.appcompat.widget.RecyclerView;
androidx.recyclerview.widget.RecyclerView;
androidx.appcompat.widget.LinearLayoutManager;
androidx.recyclerview.widget.LinearLayoutManager;
android.support.design.widget.BottomSheetDialog
com.google.android.material.bottomsheet.BottomSheetDialog
android.support.design.widget.TextInputLayout
com.google.android.material.textfield.TextInputLayout
android.support.design.widget.CoordinatorLayout
androidx.coordinatorlayout.widget.CoordinatorLayout
android.support.design.widget.NavigationView
com.google.android.material.navigation.NavigationView
androidx.core.view.ViewPager
androidx.viewpager.widget.ViewPager
android.support.design.widget.BottomSheetBehavior
com.google.android.material.bottomsheet.BottomSheetBehavior
android.support.v7.widget.Toolbar
androidx.appcompat.widget.Toolbar
android.support.design.internal.BottomNavigationItemView
com.google.android.material.bottomnavigation.BottomNavigationItemView
android.support.design.internal.BottomNavigationMenuView
com.google.android.material.bottomnavigation.BottomNavigationMenuView
androidx.appcompat.widget.CardView
androidx.cardview.widget.CardView
android.support.design.widget.BottomNavigationView
com.google.android.material.bottomnavigation.BottomNavigationView
androidx.core.view.ViewPager
androidx.viewpager.widget.ViewPager
importandroidx.core.widget.DrawerLayout
androidx.drawerlayout.widget.DrawerLayout
androidx.appcompat.widget.RecyclerView
androidx.recyclerview.widget.RecyclerView
androidx.core.view.PagerAdapter
androidx.viewpager.widget.PagerAdapter
androidx.core.app.FragmentManager
androidx.fragment.app.FragmentManager
¿Tienes alguna más? Podemos ir actualizando entre todos este post.
Si quieres contratar un Desarrollador Android Freelance contacta conmigo o llámame.