android android-studio android-studio-3.1

Android Studio no puede generar enlace de datos después de la actualización 3.1.0



android-studio android-studio-3.1 (14)

¡Este es un error muy complicado con el estudio de Android y el enlace de datos! Tuve que probar todas estas soluciones propuestas y algunas más durante un día entero para finalmente hacer la compilación de datos al menos.

Así que tuve que deshabilitar todas las configuraciones de gradle.properties en el archivo gradle.properties , simplemente comentar estas líneas o eliminarlas:

android.databinding.enableV2 = true android.enableExperimentalFeatureDatabinding = true

elimine buildToolsVersion de build.gradle y tenga las siguientes versiones de sdk:

compileSdkVersion 27 defaultConfig { minSdkVersion 21 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }

Además de un par más de tareas de limpieza / reconstrucción, se invalidan los cachés y se reinician, y FINALMENTE se compiló. ¡Como los ingenieros son excelentes para crear errores!

Esta mañana hice una actualización a android studio desde 3.0.1 a 3.1.0. Después de actualizar el gradle a la última versión, todavía recibo un error de compilación con respecto al enlace de datos.

Mi gradle-wrapper.properties :

distributionUrl=https/://services.gradle.org/distributions/gradle-4.4-all.zip

Todos mis errores son como el de abajo:

/Users/mp/Documents/GitHub/projectx/app/build/generated/source/dataBinding/baseClasses/Staging/debug/me/projectx/asdasd/databinding/GridItemActivityTypeBinding.java:57: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: class GridItemActivityTypeBinding

¿Alguien tiene alguna idea de por qué mi enlace de datos no se generará después de la actualización de Android Studio 3.1? Gracias por adelantado

Edición 1: olvidé decirlo, intenté limpiar / reconstruir / invalidar el caché y reiniciar / eliminar la carpeta de compilación.


Agregar estas líneas en grade.properties me ayudó a salvar el problema

android.enableExperimentalFeatureDatabinding = true android.databinding.enableV2=true


Esto puede parecer extraño, pero desperdicié algunas horas frente al error y luego de una inspección en mis últimos cambios, descubrí que estaba relacionado con un error en la base de datos de la sala.

Declaré uno de la interfaz de Dao pero olvidé anotarlo con @Dao .

Después de arreglar que el error de enlace de datos fue corregido.

Supongo que este es un error de Android Studio.


Necesitas cambiar tres cosas cuando actualices de Android Studio 3.0.1 a 3.1.0. Esto es como se indica a continuación

1) Necesita cambiar las propiedades gradle.wrapper en distributionUrl. Su URL debe ser distributionUrl = https: //services.gradle.org/distributions/gradle-4.4-all.zip

A

2) Es necesario actualizar la dependencia del enlace de datos en el archivo gradle de nivel de aplicación de kapt ''com.android.databinding: compilador: 3.0.1'' a kapt ''com.android.databinding: compilador: 3.1.0''

Y si estás desarrollando usando kotlin entonces,

3) Lo tercero y lo último es la necesidad de actualizar el plugin kotlin gradle en classpath "org.jetbrains.kotlin: kotlin-gradle-plugin: 1.2.30" to classpath "org.jetbrains.kotlin: kotlin-gradle-plugin: 1.2.31 " en el nivel de proyecto de la dependencia de Gradle. También puedes actualizar la versión de compilación como se ve en la imagen de abajo.

Después de todo el paso anterior simplemente limpia el proyecto de construcción y reconstrucción. Espero que funcione para resolver su problema.

¡¡Gracias!! Feliz codificacion !!


Ninguna de estas soluciones funcionó para mí, así que descubrí su error en la versión 3.2 beta 4 de Android Studio:

buildscript { repositories { ... } dependencies { //classpath "com.android.tools.build:gradle:3.2.0-beta04" // buggy databinding classpath "com.android.tools.build:gradle:3.1.3" // working }}

después de esto sincronizo, reconstruyo y ejecuto todo correctamente


Ok, entonces aquellos que se preguntan cómo solucioné esto. La solución es bastante simple, pero probablemente no te guste.

Tuve que mover todas mis clases que se usaron en el enlace de datos en el paquete raíz del proyecto y después de que comenzó a funcionar nuevamente.


Para corregir este error en el proyecto Java, debe retroceder a 27.0.2 - 27.0.2 desde 27.1.0 Funciona bien con AndroidStudio 3.1 y com.android.tools.build:gradle:3.1.0

Esperando una solución de Google


Puede que esta no sea la respuesta más útil, pero en mi caso esto fue causado por un problema completamente no relacionado en mi código.

Recibí el error: cannot find symbol: DataBindingComponent 51 error: cannot find symbol: DataBindingComponent errores de error: cannot find symbol: DataBindingComponent (en cada clase generada por Data Binding), y pasé edades eliminando cambios en mi código de XML y ViewModel tratando de encontrar lo que lo estaba causando.

El problema realmente radica en un cambio no válido que hice un modelo de habitación. Supongo que un error de sala podría haber sido confuso por todos los errores de enlace de datos, pero los registros de depuración / escaneo en la terminal no apuntaban a ello.

Así que revise todo el código reciente, incluso los cambios aparentemente no relacionados si encuentra este problema.

Edición: vea esta publicación SO sobre estos errores de enlace de datos que ofuscan otros problemas de kapt (como Room / Dagger)


Revise sus archivos xml si está utilizando el enlace de datos. Perdí una hora hoy porque cambié el nombre de una clase y Android Studio decidió hacer cambios en mis archivos xml. Por ejemplo, tuve una clase llamada LiveGameModel y le cambié el nombre a LiveGameView y AS decidió hacer cambios en los archivos xml que no están relacionados con esta vista. Lo sé, este error no tiene sentido.


Si está utilizando Kotlin en Android Studio 3.2, reemplace DistributionDlL con esta línea.

distributionUrl=https/://services.gradle.org/distributions/gradle-4.6-all.zip

y se le pedirá que cambie la versión de las herramientas de compilación a la versión apropiada. una vez que hayas hecho eso, elimina esta línea del archivo build.gradle de nivel de aplicación

kapt ''com.android.databinding:compiler:3.0.1

y construir el proyecto. funciono para mi


Tenía el mismo problema que @Marian Pavel, donde mi proyecto no podía compilar los componentes de enlace de datos a menos que tuviera la clase que se usó en el enlace de datos en la carpeta raíz.

Arreglé el problema haciendo esto:

Android Studio: 3.2.1 estable

**project build.gradle** classpath ''com.android.tools.build:gradle:3.2.1'' **module build.gradle** apply plugin: ''kotlin-kapt'' kapt "androidx.databinding:databinding-compiler:3.2.1" **gradle.properties** android.databinding.enableV2=false


Tras la actualización a Android Studio 3.2, esta línea funciona para mí. Tengo código Java y Kotlin (compilador) en ejecución en mi proyecto.

Agregue lo siguiente a su gradle.properties: android.databinding.enableV2 = falso

Razón:

Enlace de datos V2

El enlace de datos V2 ahora está habilitado de forma predeterminada y es compatible con V1. Esto significa que, si tiene dependencias de biblioteca que compiló con V1, puede usarlas con proyectos usando Data Binding V2. Sin embargo, tenga en cuenta que los proyectos que usan V1 no pueden consumir dependencias compiladas con V2.

fuente (Nota de la versión): https://developer.android.com/studio/releases/


Yo estaba teniendo el mismo problema. Deshabilité el enlace de datos en las propiedades de Gradle y funcionó. dataBinding.enabled = false


Yo estaba teniendo el mismo problema. Se corrigió agregando google () a Project build.gradle

allprojects { repositories { jcenter() **google()** } }

asegúrese de agregar en todos los proyectos