android android-jetpack

¿Puedo usar la biblioteca que usó el soporte de Android con proyectos Androidx?



android-jetpack (4)

Utilicé estas dos líneas de código en la etiqueta de la aplicación en manifest.xml y funcionó.

tools:replace="android:appComponentFactory" android:appComponentFactory="whateverString"

Fuente: https://github.com/android/android-ktx/issues/576#issuecomment-437145192

Lo sé, androidx y la dependencia de soporte que causa el error multidex No podemos usar androidx y soporte de Android al mismo tiempo. Así que migro totalmente a androidx. pero una de mis dependencias lib usó el soporte de Android "lottie".

¿Qué podemos hacer en la situación anterior? ¿Debo eliminar ''lottie'' de mi proyecto.

debajo está mi gradle

defaultConfig { minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true multiDexEnabled true } ext{ lottieVersion = "2.5.4" } dependencies { implementation fileTree(dir: ''libs'', include: [''*.jar'']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" def androidx = "1.0.0-rc01" api "androidx.constraintlayout:constraintlayout:1.1.2" api "androidx.appcompat:appcompat:$androidx" api "androidx.recyclerview:recyclerview:$androidx" api "androidx.cardview:cardview:$androidx" api "androidx.core:core-ktx:$androidx" api "com.google.android.material:material:1.0.0-rc01" implementation "com.google.code.gson:gson:2.8.5" implementation "androidx.multidex:multidex:2.0.0" implementation "com.airbnb.android:lottie:$lottieVersion" }


Agregar manualmente android.useAndroidX=true y android.enableJetifier=true lo que me ha costado mucho. Debido a que es un error o Suggestion: add ''tools:replace="android:appComponentFactory"'' to <application>

Para habilitar Jet-fire en el proyecto hay una opción en Android Studio

Seleccione su proyecto ---> clic derecho

aplicación ----> Refactor ----> Migrar a AndroidX

Se muestra en la imagen de abajo:

Después de hacer clic en Migrar a AndroidX .

Le pedirá confirmación y respaldo para su proyecto.

Y último paso te pedirá que hagas refactor.

Después de hacer Refactor, verifique que su gradle.properties tenga android.useAndroidX=true y android.enableJetifier=true . Si no lo están, agregue estas dos líneas a su archivo gradle.properties:

android.useAndroidX=true android.enableJetifier=true


Puede habilitar Jetifier en su proyecto, que básicamente intercambiará las dependencias de la Android Support Library en las dependencias de su proyecto con AndroidX -ones. (Por ejemplo, sus dependencias de Lottie cambiarán de Soporte a AnroidX)

De la documentación de Android Studio ( https://developer.android.com/studio/preview/features/ ):

El complemento Gradle de Android proporciona los siguientes indicadores globales que puede establecer en su archivo gradle.properties:

  • android.useAndroidX: cuando se establece en verdadero, esta bandera indica que desea comenzar a usar AndroidX a partir de ahora. Si el indicador está ausente, Android Studio se comporta como si el indicador estuviera establecido en falso.
  • android.enableJetifier: cuando se establece en verdadero, este indicador indica que desea tener soporte de herramientas (desde el complemento Gradle de Android) para convertir automáticamente las bibliotecas de terceros existentes como si estuvieran escritas para AndroidX. Si el indicador está ausente, Android Studio se comporta como si el indicador estuviera establecido en falso.

Condición previa para el jetifier:

  • Tienes que usar al menos Android Studio 3.2

Para habilitar el jetifier, agregue esas dos líneas a su archivo gradle.properties :

android.useAndroidX=true android.enableJetifier=true

Finalmente, revise las notas de la versión de AndroidX, ya que jetifier aún tiene algunos problemas con algunas bibliotecas (por ejemplo, Dagger Android): https://developer.android.com/topic/libraries/support-library/androidx-rn


No tienes que preocuparte

Simplemente habilita Jetifier en tu proyecto.

  • Actualice Android Studio a 3.2.0 o más reciente.
  • Abra gradle.properties y agregue debajo de dos líneas.

    android.enableJetifier=true android.useAndroidX=true

Convierte todas las bibliotecas de soporte de su dependencia a AndroidX en tiempo de ejecución (puede que tenga errores de compilación, pero la aplicación se ejecutará).