Actualizar proyecto a Android X

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.

Cómo migrar a AndroidX

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.

pantallazo del Android Studio con los pasos a seguir para adaptar tu proyecto android a androidx

Una vez hecho esto, la parte principal estará resuelta. Y hasta aquí llega la documentación.

Cómo completar la migración a AndroidX

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 androidx:

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.