¿Qué es Jetifier? Por ejemplo, para crear un nuevo proyecto usando las dependencias empaquetadas con androidx, este nuevo proyecto necesita agregar la siguiente línea al archivo gradle.properties :
android.enableJetifier=true
Entonces, ¿qué significa "habilitar jetifier"?
implementation "com.commonsware.cwac:document:0.3.0"
en sudependencies
. Esa versión de biblioteca tiene una dependencia transitiva decom.android.support:support-annotations:27.0.2
. Sin embargo, desea utilizarloandroidx.annotation:annotation
como parte del uso de otras dependencias de AndroidX. Jetifier de alguna manera se actualizaríacom.commonsware.cwac:document
para usarandroidx.annotation:annotation
.Respuestas:
Google I / O de este año (18), Google ha anunciado Jetpack, que es un conjunto / colección de bibliotecas para facilitar la vida del desarrollador.
Jetpack incluye componentes de arquitectura de Android introducidos anteriormente (ViewModel, Room, Paging, LiveData, etc.), así como componentes de arquitectura recientemente introducidos como WorkManager, Navigation. Aparte de este Jetpack también tiene otro conjunto de bibliotecas como AndroidX, AndroidKTX, etc.
AndroidX es una nueva estructura de paquete para bibliotecas de soporte de Android como soporte, enlace de datos, diseño, etc.
por ejemplo, ahora en los wards, los desarrolladores utilizarán androidx.databinding. en lugar de android.databinding. al importar bibliotecas en nuestros proyectos
Esto le permite a Google agregar SemVer o Semantic Versioning en sus paquetes de biblioteca. Para los desarrolladores, esto significa que no tenemos que usar la misma versión de biblioteca de soporte para todas las bibliotecas de soporte. Cada soporte o mejor dicho, la biblioteca de AndroidX mantendrá su propio control de versiones.
Otra ventaja para los desarrolladores es que no tenemos que preocuparnos por mantener la misma versión para todas las bibliotecas de soporte en nuestro proyecto.
Acerca de Jetifier, convierte todo el paquete de soporte de dependencia en el momento de la compilación. Según documentación oficial de Jetifier
Para usar AndroidX en un proyecto, debemos establecer targetSdkVersion para nuestro proyecto en 28 y agregar las siguientes 2 líneas en el archivo gradle.properties .
Espero que esto responda a tu consulta.
EDITAR
Este enlace tiene un mapeo de todos los componentes de la biblioteca de soporte con su contraparte de AndroidX.
También consulte este blog para obtener una explicación detallada sobre AndroidX
fuente
Suponiendo que esté familiarizado con
AndroidX
. Si no es así, consulte @ esta publicación .Por ejemplo
Si tiene
PhotoView.java
en su dependencia. Que usa la biblioteca de soporteAppCompatImageView
.Esta clase se mueve ahora al
androidx
paquete, entonces, ¿cómo sePhotoView
obtendrá androidxAppCompatImageView
? Y la aplicación aún se ejecuta en el dispositivo.¿Quién hizo esto?
Jetifier se convertirá
android.support.v7.widget.AppCompatImageView
aandroidx.appcompat.widget.AppCompatImageView
mientras se construye el proyecto.Conclusión
Habilitar Jetifier es importante cuando se migra de las bibliotecas de soporte a AndroidX .
Consulte esta publicación para comprender más sobre AndroidX.
Información
Su código puede mostrar errores de tiempo de compilación después de habilitar Jetifier mientras usa clases de dependencia. que se puede eliminar mediante la supresión
.idea
,.gradle
y el proyecto de re-sincronización.fuente
Jetifier ayuda a migrar un proyecto de Android a AndroidX .
Jetifier ayuda a hacer que la biblioteca de terceros sea compatible con su proyecto AndroidX.
Si no está utilizando ninguna biblioteca de terceros en su proyecto de Android, entonces no necesita usar Jetifier porque Jetifier solo ayuda a "hacer que la biblioteca de terceros" sea compatible con su proyecto en caso de que esté migrando a AndroidX. Entonces, para que su proyecto use Jetifier, escriba el código a continuación en gradle.properties .
Si no está migrando a AndroidX y está utilizando la forma anterior de usar las bibliotecas de Android (por ejemplo: com.android.support ), entonces estas bibliotecas de terceros no necesitan ser compatibles ya que estas bibliotecas de terceros ya son compatibles con la forma anterior de usando bibliotecas de Android. En ese caso, no necesita usar Jetifier, por lo que ahora, no necesita escribir las líneas dadas arriba o simplemente puede escribir lo siguiente para cambiar los valores en el futuro para pasar a androidx: -
fuente
Jetifier
El jetifier es una práctica herramienta que migra automáticamente
dependencies
aAndroidX
en tiempo de compilación. Sin él, necesitaría que todas las dependencias que use para tener una versión de AndroidX antes de poder migrar, y eso probablemente no sucederá por algún tiempo.Hay una limitación importante a tener en cuenta: el jetifier solo funciona en artefactos empaquetados. No funciona en su código fuente, que se espera que actualice usted mismo
para habilitar AndroidX, debe agregar 2 banderas a su
gradle.properties
archivo. El primer indicador le dice al complemento de Android que useAndroidX
paquetes en lugar deAppCompat
, y el segundo indicador habilitaráJetifier
:Vea esto , esta publicación para comprender más sobre AndroidX
fuente
Del documento oficial
Es útil por compatibilidad. Cuando un consumidor usa
androidX
y un productor usasupport
. Por ejemplo, cuando su proyectoAndroidX
quiere usar una dependencia que usa ensupport library
lugar deAndroidX
[Ejemplo]fuente
Agregue estas dos líneas android.useAndroidX = true
android.enableJetifier = true
en buid.gradle funcionó para mí
fuente