De repente, cuando sincronizo Gradle, aparece este error:
ADVERTENCIA: la API 'variant.getJavaCompile ()' está obsoleta y ha sido reemplazada por 'variant.getJavaCompileProvider ()'. Se eliminará a fines de 2019. Para obtener más información, consulte https://d.android.com/r/tools/task-configuration-avoidance Módulos afectados: aplicación
Tengo esto build.gradle
para el módulo de la aplicación:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'io.fabric'
android {
compileSdkVersion 28
buildToolsVersion "28.0.2"
defaultConfig {
applicationId "..."
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "..."
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
versionNameSuffix = version_suffix
[...]
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
[...]
}
debug {
[...]
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.61"
implementation 'androidx.appcompat:appcompat:1.0.0-rc02'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation "com.android.support:preference-v7:28.0.0"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
implementation 'com.google.android.material:material:1.0.0-rc02'
[...]
}
Puedo compilar la aplicación correctamente, pero es un poco molesto y, como lo veo, algo dejará de funcionar a fines de 2019. ¿Alguna idea de qué es y cómo resolverlo?
Respuestas:
Este problema se solucionó ahora con la actualización de Fabric Gradle versión 1.30.0:
Lanzamiento de actualización: 19 de marzo de 2019
Consulte este enlace: https://docs.fabric.io/android/changelog.html#march-15-2019
Actualice su dependencia de classpath en el nivel de proyecto Gradle:
fuente
classpath 'io.fabric.tools:gradle:1.29.0'
. ¿Qué tengo que hacer?Me enfrento a este problema después de actualizar a 3.3.0
Si no está haciendo qué estado de error en el archivo gradle, es un complemento que aún no se actualizó a la API más nueva que causa esto. Para averiguar qué complemento es, haga lo siguiente (como se explica en "Mejor información de depuración cuando se usa API obsoleta" del anuncio 3.3.0 ):
Espero que ayude a otros
fuente
android.debug.obsoleteApi=true
, Para leer los detalles registrados: Vaya a la pestaña Generar en la parte inferior y dentro de la ventana "Generar salida", haga clic en "Alternar vista". Cuando haces clic en que los colores bonitos desaparecen, desplázate hasta la parte superior donde diceWARNING: API 'variant.getAssemble()' is obsolete
. Luego, debajo, se muestraREASON: Called from:
... en mi caso se debió a medium.com/@xabaras/…En mi caso, fue causado por los servicios gms 4.3.0. Así que tuve que cambiarlo a:
He encontrado esto ejecutando:
en terminal. Vaya a ver -> ventanas de herramientas -> Terminal en Android Studio.
fuente
./
antes del comando, es decir, si el terminal está configurado en la raíz de su proyecto de Android. De lo contrario, tendrá que cd a la raíz del proyecto.Esto es solo una advertencia y probablemente se solucionará antes de 2019 con actualizaciones de complementos, así que no se preocupe. Le recomendaría que use versiones compatibles de sus complementos y gradle.
Puede verificar su versión de complemento y la versión de gradle aquí para obtener una mejor experiencia y rendimiento.
https://developer.android.com/studio/releases/gradle-plugin
Intente usar las versiones estables para obtener un código fluido y libre de advertencia / error.
fuente
También enfrenté el mismo problema. Y después de buscar por un tiempo, descubrí que surgía la advertencia debido al uso de la última versión del
google-services
complemento (versión 4.3.0). Por cierto, estaba usando este complemento para las funcionalidades de Firebase en mi aplicación. Todo lo que hice fue degradar migoogle-services
plugin en buildscript en el archivo de nivel build.gradle (Proyecto) de la siguiente manera:fuente
Cambie su versión de Servicios de Google desde su
build.gradle
:fuente
Esta es una advertencia emitida por las herramientas de compilación por dos razones.
1. Uno de los complementos depende de Task en lugar de TaskProvider, no hay mucho que podamos hacer.
2. Ha configurado el uso de la tarea, donde es compatible con TaskProvider.
Esté atento a los fragmentos como a continuación y actualice.
Del mismo modo, encuentre usos de
'variant.getJavaCompile()'
o'variant.javaCompile'
,'variant.getMergeResources()'
o'variant.mergeResources'
. Reemplace como arriba.Más información en Evitar configuración de tareas
fuente
./gradlew
. Esto no tiene nada que ver con AS, está en las herramientas de compilación. Actualizar / degradar acom.android.tools.build:gradle:3.2.0
y ejecutar./gradlew
. Esto no vendrá.variant.generateBuildConfig.enabled
en mi proyecto. Todavía recibo la advertencia anteriorvariant.generateBuildConfig.enabled
en mi proyecto. Todavía recibo la advertencia anteriorLa degradación de la versión de Gradle funcionó para mí:
fuente
1) Añadir
android.debug.obsoleteApi=true
a tugradle.properties
. Le mostrará qué módulos está afectado por su registro de advertencia.2) Actualice estas funciones obsoletas.
variant.javaCompile
avariant.javaCompileProvider
variant.javaCompile.destinationDir
avariant.javaCompileProvider.get().destinationDir
fuente
La actualización de la versión Kotlin ( Plugin y stdLib ) a 1.3.1 resolvió esa advertencia en mi caso. Actualice la versión de Kotlin en todo el proyecto reemplazando la versión de Kotlin existente con:
fuente
ext.kotlin_version = '1.2.71'
... Cambié a la respuesta anterior y funcionó bien! - Eliminé mi/android
y las/ios
carpetas y luego corríflutter create .
para reconstruir la aplicación Flutter y la coloquéext.kotlin_version = '1.2.71'
en mibuild.gradle
Regrese de classpath 'com.android.tools.build:gradle:3.3.0-alpha13' a classpath 'com.android.tools.build:gradle:3.2.0'
esto funcionó para mí
fuente
Actualice el complemento de fabric a lo último en el archivo Gradle de nivel de proyecto (no a nivel de aplicación). En mi caso, esta línea resolvió el problema
a
fuente
En mi caso
estaba
actualizado a
parece que el problema se ha ido por ahora
fuente
En mi caso, tuve que comentar el
com.google.firebase.firebase-crash
complemento:Es un error desde Android Studio 3.3.0
fuente
oss-licenses-plugin
Actualización de gradle a gradle: 3.3.0
La tarea predeterminada 'ensamblar' solo se aplica a las variantes normales. Agregue variantes de prueba también.
también comentar aplicar tela
fuente
crashlytics { manifestPath = "$buildDir/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml" }
Cuando el complemento detecta que está utilizando una API que ya no es compatible, ahora puede proporcionar información más detallada para ayudarlo a determinar dónde se está utilizando esa API. Para ver la información adicional, debe incluir lo siguiente en el archivo gradle.properties de su proyecto:
fuente
si elimino esta fila de
application gradle
:El error ya no aparecerá.
Enlace de referencia github
fuente
las dependencias se actualizan a androidX. así que si quieres usar contenido de androidX, migra tu proyecto a androidX.
Con Android Studio 3.2 y superior, puede migrar rápidamente un proyecto existente para usar AndroidX seleccionando Refactor> Migrar a AndroidX desde la barra de menú.
fuente
Esto solucionó mi problema. Todo lo que tenía que hacer era degradar mi complemento de servicios de google en buildscript en el archivo de nivel build.gradle (Proyecto) de la siguiente manera
fuente
Aquí una solución temporal, si está utilizando la habitación, simplemente actualice a 1.1.0 o superior
me quita esta advertencia.
fuente
mantener su proyecto (no aplicación) Build.gradle dependences classpath version code es nuevo
fuente
Esta es una pregunta popular. Si no utiliza estos métodos, la solución es actualizar las bibliotecas. Actualice su versión de kotlin y todas sus dependencias, como fabric , protobuf , etc. Si está seguro de haber actualizado todo, intente preguntar al autor de la biblioteca.
fuente
La actualización de protobuf-gradle-plugin a la versión 0.8.10 resolvió mi problema. Reemplace su protobuf existente con
fuente
Eso se debe principalmente a las bibliotecas que están obsoletas. Para buscar nuevas actualizaciones manualmente, debe navegar a
Eso debería bastar. Otra opción es ejecutar una actualización de dependencia de Gradle usando
./gradlew dependencyUpdates
eso producirá un informe como este:
fuente
actualizar los servicios de google a nivel de proyecto
build.gradle
resolvió mi problema.Después de actualizar:
fuente
Tuve el mismo problema y se resolvió definiendo la versión del complemento kotlin gradle en el archivo build.gradle.
cambia esto
a
fuente
En mi caso seguí esto . Resumen, en el nivel de la aplicación gradle: cambie esto:
a
fuente