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=true
yandroid.enableJetifier=true
hacié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=true
yandroid.enableJetifier=true
. Si no es así, agregue estas dos líneas a su archivo gradle.properties:android.useAndroidX=true android.enableJetifier=true
fuente
No necesitas preocuparte
Simplemente habilite Jetifier en su proyecto.
Abra
gradle.properties
y agregue debajo de dos líneas.android.enableJetifier=true android.useAndroidX=true
Convertirá 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-standalone
del aar de terceros podría funcionar.Agregue las líneas en el archivo gradle.properties
android.useAndroidX=true android.enableJetifier=true
Consulte también https://developer.android.com/jetpack/androidx
fuente
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=true
entonces 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.Toolbar
reemplazarlo con
androidx.appcompat.widget.Toolbar
luego 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.properties
fuente