Lo sé, androidx y la dependencia de soporte causan un error multidex No podemos usar el soporte de androidx y android al mismo tiempo. Así que migro totalmente a androidx. pero una de mis bibliotecas de dependencia usaba 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"
}
fuente

Añadiendo manualmente
android.useAndroidX=trueyandroid.enableJetifier=truehaciéndome pasar un mal rato. Porque es lanzar algun error oSuggestion: 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, haga clic en Migrar a AndroidX .
Le pedirá confirmación y una copia de seguridad de su proyecto.
Y último paso te pedirá que hagas una refactorización.
Después de hacer Refactor, verifique que gradle.properties tenga
android.useAndroidX=trueyandroid.enableJetifier=true. Si no es así, agregue estas dos líneas a su archivo gradle.properties:android.useAndroidX=true android.enableJetifier=truefuente
No necesitas preocuparte
Simplemente habilite Jetifier en su proyecto.
Abra
gradle.propertiesy agregue debajo de dos líneas.android.enableJetifier=true android.useAndroidX=trueConvertirá todas las bibliotecas de soporte de su dependencia a AndroidX en tiempo de ejecución (es posible que tenga errores de tiempo de compilación, pero la aplicación se ejecutará).
fuente
android.enableJetifier=true, si esto sucediera, creo que el uso manualjetifier-standalonedel aar de terceros podría funcionar.Agregue las líneas en el archivo gradle.properties
android.useAndroidX=true android.enableJetifier=truefuente
API 29. + uso de bibliotecas AndroidX. Si está utilizando API 29. +, no puede eliminarlos. Si desea eliminar AndroidX, debe eliminar la API 29. + completa de su SDK:
Esto funcionará bien.
fuente
Usé 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
fuente
Agregué debajo de dos líneas en el archivo gradle.properties
android.useAndroidX=true android.enableJetifier=trueentonces recibí el siguiente error
error: package android.support.v7.app does not exist import android.support.v7.app.AlertDialog; ^Eliminé las importaciones y agregué debajo de la línea
import static android.app.AlertDialog.*;Y las clases que se extienden desde AppCompactActivity, agregaron la siguiente línea. (Para estos errores, solo necesita presionar alt + enter en Android Studio que importará la biblioteca correcta para usted. De esta manera, puede resolver todos los errores)
import androidx.appcompat.app.AppCompatActivity;En su archivo xml si ha usado alguna
<android.support.v7.widget.Toolbarreemplazarlo con
androidx.appcompat.widget.Toolbarluego en tu código java
import androidx.appcompat.widget.Toolbar;fuente
Si su proyecto no es AndroidX (es decir, Appcompat) y obtuvo este error, intente degradar las versiones de las dependencias que desencadenan este error, en mi caso play-services-location ("deployment 'com.google.android.gms: play-services-location : 17.0.0 '"), resolví el problema degradando a com.google.android.gms: play-services-location: 16.0.0'
fuente
Tuve un problema como este antes, era que el archivo gradle.properties no existe, solo el gradle.properties.txt, así que fui a la carpeta de mi proyecto y copié y pegué el archivo gradle.properties.txt pero sin. txt, entonces finalmente funcionó.
fuente
Comenta esta línea en
gradle.propertiesfuente