studio solucionar queda proyecto problemas failed error configurar con abrir android-studio android kotlin android-databinding

solucionar - No se puede encontrar el símbolo DataBindingComponent en Android Studio 3.2 Proyecto Canary Kotlin 16



gradle project sync failed android studio 3.0 1 (27)

¡Este es mi error más estúpido! Realmente he creado una variable privada para Databinding y eso estaba causando este problema.

Simplemente use un lateinit var binding y funcionó.

¡Esto podría ayudar a alguien!

Acabo de crear un nuevo proyecto en Android Studio 3.2 Canary 16 con Kotlin habilitado. Luego también habilité el enlace de datos, pero recibo un error que dice que no se pudo encontrar la clase DataBindingComponent.

Aquí está mi proyecto gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = ''1.2.41'' ext.android_plugin_version = ''3.2.0-alpha10'' repositories { google() jcenter() } dependencies { classpath ''com.android.tools.build:gradle:3.2.0-alpha16'' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }

Mi módulo de archivo gradle:

apply plugin: ''com.android.application'' apply plugin: ''kotlin-android'' apply plugin: ''kotlin-kapt'' apply plugin: ''kotlin-android-extensions'' android { compileSdkVersion 27 defaultConfig { applicationId "net.julianonunes.myapp" minSdkVersion 22 targetSdkVersion 27 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro'' } } dataBinding { enabled = true } } dependencies { implementation fileTree(dir: ''libs'', include: [''*.jar'']) implementation"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation ''com.android.support:appcompat-v7:27.1.1'' implementation ''com.android.support.constraint:constraint-layout:1.1.0'' implementation ''com.squareup.okhttp3:okhttp:3.10.0'' implementation ''com.android.support:design:27.1.1'' kapt "com.android.databinding:compiler:3.1.2" }

El XML de mi actividad:

<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> <variable name="data" type="net.julianonunes.myapp.RegisterData" /> </data> .... </layout>

Y aquí está la salida de compilación:

Executing tasks: [clean, :app:assembleDebug] Configuration on demand is an incubating feature. > Configure project :app app: ''annotationProcessor'' dependencies won''t be recognized as kapt annotation processors. Please change the configuration name to ''kapt'' for these artifacts: ''androidx.databinding:databinding-compiler:3.2.0-alpha16''. > Task :clean > Task :app:clean > Task :app:preBuild UP-TO-DATE > Task :app:preDebugBuild > Task :app:compileDebugAidl NO-SOURCE > Task :app:compileDebugRenderscript > Task :app:checkDebugManifest > Task :app:generateDebugBuildConfig > Task :app:prepareLintJar UP-TO-DATE > Task :app:mainApkListPersistenceDebug > Task :app:generateDebugResValues > Task :app:generateDebugResources > Task :app:mergeDebugResources > Task :app:createDebugCompatibleScreenManifests > Task :app:processDebugManifest > Task :app:splitsDiscoveryTaskDebug > Task :app:processDebugResources > Task :app:generateDebugSources > Task :app:dataBindingExportBuildInfoDebug > Task :app:transformDataBindingBaseClassLogWithDataBindingMergeGenClassesForDebug > Task :app:transformDataBindingWithDataBindingMergeArtifactsForDebug > Task :app:dataBindingGenBaseClassesDebug Download https://dl.google.com/dl/android/maven2/com/android/databinding/compiler/3.1.2/compiler-3.1.2.pom Download https://dl.google.com/dl/android/maven2/com/android/databinding/compiler/3.1.2/compiler-3.1.2.jar > Task :app:kaptGenerateStubsDebugKotlin e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:28: error: cannot find symbol protected ActivityMainBinding(DataBindingComponent _bindingComponent, View _root, ^ symbol: class DataBindingComponent location: class ActivityMainBinding e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:46: error: cannot find symbol @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: class ActivityMainBinding e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:57: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: class ActivityMainBinding e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:68: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: class ActivityMainBinding e: [kapt] An exception occurred: java.lang.NullPointerException at java.io.File.<init>(File.java:277) at android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:77) at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:203) at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.access$000(ProcessDataBinding.java:188) at android.databinding.annotationprocessor.ProcessDataBinding.doProcess(ProcessDataBinding.java:90) at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:65) at org.jetbrains.kotlin.kapt3.ProcessorWrapper.process(annotationProcessing.kt:131) at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794) at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705) at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91) at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035) at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176) at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170) at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1068) at org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:87) at org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:45) at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:257) at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:212) at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:95) at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM$analyzeFilesWithJavaIntegration$2.invoke(TopDownAnalyzerFacadeForJVM.kt:97) at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:107) at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:84) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:374) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:64) at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:101) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:365) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:130) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:161) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:63) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:107) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:51) at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:96) at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:405) at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:98) at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:920) at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:98) at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137) at org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:950) at org.jetbrains.kotlin.daemon.CompileServiceImpl.doCompile(CompileServiceImpl.kt:919) at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:404) at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346) at sun.rmi.transport.Transport$1.run(Transport.java:200) at sun.rmi.transport.Transport$1.run(Transport.java:197) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:196) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) > Task :app:kaptDebugKotlin FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task '':app:kaptDebugKotlin''. > Compilation error. See log for more details * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0. See https://docs.gradle.org/4.7/userguide/command_line_interface.html#sec:command_line_warnings BUILD FAILED in 8s 20 actionable tasks: 19 executed, 1 up-to-date

¿Qué está mal con mi proyecto?

PD: El problema también ocurre en Android Studio 3.1.2.


Algo más que probar :) Estaba tratando de obtener GithubBrowserSample en Android Studio 3.2 (RC3). Seguí recibiendo muchos errores extraños en el enlace de datos, aunque no especifica las versiones de enlace de datos en el build.gradle principal. La solución fue eliminar estas dos líneas de gradle.properties:

org.gradle.jvmargs=-Xmx4536m android.databinding.enableV2=true


Arreglo actualizando Android Studio a Canary 16 Y esto en gradle.wrapper.properties distributionUrl=https/://services.gradle.org/distributions/gradle-4.7-all.zip


Con la siguiente configuración

Android Studio 3.2.1 Build # AI-181.5540.7.32.5056338, construido el 8 de octubre de 2018 JRE: 1.8.0_152-release-1136-b06 x86_64 JVM: OpenJDK VM de servidor de 64 bits de JetBrains sro macOS 10.13.3

Y DataBinding simplemente habilita al tener esto en mi aplicación build.gradle

apply plugin: ''kotlin-kapt''

y entonces

dataBinding { enabled = true }

y también esto en mis propiedades gradle.wrapper

android.databinding.enableV2=true

Tuve los mismos errores:

could not find the DataBindingComponent class.

Tuve más de 100 de ellos. Resultó que esos errores no eran importantes y que el IDE no mostraba el verdadero error subyacente. Por lo tanto, aumenté el número de errores que el compilador de Kotlin puede mostrar agregando esto en build.gradle:

dataBinding { enabled = true } kapt { javacOptions { // Increase the max count of errors from annotation processors. // Default is 100. option("-Xmaxerrs", 500) } }

De repente, justo debajo de todos esos errores falsos, vi el verdadero causado por una resolución fallida de conflicto de fusión 😔


Daga también puede ser la causa. Cambiar la versión de la daga de 2.17 a 2.16 puede solucionar este problema por ahora.

Discusión: https://github.com/google/dagger/issues/1245

Actualizar

Dagger 2.18 está fuera, pero lamentablemente todavía no funcionará después de la prueba (¿Me he perdido algo?).

Actualización2

Dagger 2.19 tampoco funcionará y la discusión está bloqueada.

Pero en google issuetracke , hay soluciones / soluciones alternativas. Probé y trabajaron. Compruébalo si quieres usar la última Dagger.

Actualización3

Daga problema se ha solucionado en el Android Studio 3.3.


El mismo error aquí en Android Studio 3.3.1, no Kotlin, Java puro, usando androidx

build.gradle contiene

dataBinding { enabled true }

gradle.properties contiene

android.useAndroidX=true android.enableJetifier=true android.databinding.enableV2=true

He estado luchando contra el problema durante horas y luego lo resolví de la siguiente manera:

Declare temporalmente una interfaz vacía para DataBindingComponent en su proyecto (en src/main/java/androidx.databinding/DataBindingComponent.java )

package androidx.databinding; public interface DataBindingComponent { }

Deja que se compile y el error desaparecerá. Pero ahora se revelará el error de raíz real. El que en realidad estaba causando todos los problemas, pero de alguna manera fue tragado. En mi caso, provenía de AutoValue, lo que indica que lo estaba usando incorrectamente.

error: Parameter type java.lang.Boolean of setter method should be boolean to match getter

arreglar eso y luego quitar la interfaz ficticia hace que el compilador vuelva a ser feliz.


En mi caso el problema se resolvió cambiando:

androidExtensions.experimental = true

(es decir, gradle DSL como una sola línea)

a

androidExtensions { experimental = true }

además de could not find the DataBindingComponent class también tuve un error: incompatible types: NonExistentClass cannot be converted to Annotation asociada con kotlinx.android.parcel.Parcelize anotación (@Parcelize)

Android Studio 3.3; gradle-4.10.1-todos; tools.build:gradle 3.3.0


En mi caso fue una mala anotación de daga. Pongo un alcance personalizado en un módulo en lugar de ponerlo en un método de provisión.

¯/_(ツ)_/¯


En mi caso hubo un error de importación en uno de los archivos. Simplemente abriendo ese archivo, las importaciones se realizarán automáticamente y, posteriormente, se construirá el proyecto.

Es una pena que AS no haya dado ninguna indicación de esto, tampoco lo hizo el error stacktrace.

En caso de que nada de la respuesta publicada ayude, solo navegue por todos los archivos del proyecto y busque un archivo que tenga una declaración de importación incorrecta.


Es un error en el jetifier. Aquí hay una solución por ahora hasta la próxima actualización. Pon esto en tu proyecto gradle:

buildscript { dependencies { classpath ''com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta02'' } }


Finalmente solucioné mi problema porque estaba usando Anotaciones de Android y lanzaron una nueva versión 4.5.1 hace 1 hora, donde son compatibles con Grade Plugin 3.2.0.

Estuve buscando este error por una semana y ahora estoy feliz. ¡Espero que esto le ayude también!


He intentado classpath ''com.android.tools.build:gradle:3.2.0-beta05'' con y sin dependencia explícita kapt "androidx.databinding:databinding-compiler:3.3.0-alpha06"

Y sigue recibiendo la misma excepción.

También he intentado 3.3.0-alpha06 pero nada cambió.

ACTUALIZACIÓN: Después de 2 días, resolví el problema. Lo que hice fue arreglar manualmente todos los archivos que tenían problemas, debido a la migración a AndroidX (paquetes incorrectos en importaciones y XML, etc.). Además, necesitaba actualizar Glide de 4.7 a 4.8. Cuando arreglé todos los archivos rojos, el problema desapareció.


Las bibliotecas de enlace de datos se están refaccionando como parte de la refactorización de androidx.

Encontré el enlace de dependencia del procesador de anotación de datos del repositorio de Google here .

He construido la dependencia real de gradle a partir de ahí.

kapt "androidx.databinding:databinding-compiler:3.2.0-alpha16"

Actualización A partir de Android studio 3.2.0-beta01, el enlace de datos ya no necesita que se declare su dependencia del procesador de anotaciones en el archivo gradle, ya que el enlace de datos es capaz de resolver su dependencia.


Los errores de compilación para interfaces generadas como DataBindingComponent suelen ser engañosos. Trate de buscar cualquier otro error de compilación y corríjalos primero, luego vuelva a compilarlos.


Mi problema fue que intenté habilitar el enlace de datos para mi módulo de Login pero no el módulo de la App . Después de agregar:

dataBinding { enabled = true }

al módulo de la App y lo eliminó del módulo de Login , funcionó.


Mi situación:

Android Studio v3.2.1

com.android.tools.build:gradle:3.2.1

https://services.gradle.org/distributions/gradle-4.10.2-all.zip

Descubrí que al eliminar el enlace de datos de mi diseño, volver a compilar la aplicación y luego agregar el enlace de datos de nuevo solucionó este problema.

Cambié el DataBindingUtil.setContentView(...) para simplemente setContentView(...) y reduje mi diseño de actividad al mínimo:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello"/> </FrameLayout>

A continuación, agregue el enlace de datos de nuevo en una pieza por pieza.


Para lo que vale, tuve un problema similar y fue el resultado de una consulta de sala incorrecta relacionada con un enlace de datos.


Resolví el error añadiendo

android.useAndroidX=true android.enableJetifier=true

en el archivo gradle.properties de mi proyecto


Si está utilizando la biblioteca dataroom, verifique la anotación de @Dao en sus clases DAO. En mi caso, olvidé agregar @Dao a mi interfaz de RoomDatabase''Dao.


Si usa Room Database, verifique todas sus clases de Dao si tiene algún problema de importación o no especificó el TypeConverter que usa @TypeConverters , este error es engañoso, y debería solucionarse si actualiza la versión de las herramientas de construcción de gradle de nivel de proyecto a la última versión. Utilicé classpath ''com.android.tools.build:gradle:3.4.0'' y obtuve el error correctamente.


Si ya está utilizando la versión estable de Android Studio 3.2 , simplemente elimine la dependencia, ya está incluida.


Simplemente elimine la dependencia del compilador (kapt "com.android.databinding: compiler: $ gradleVersion), que funcionó para mí. Aparentemente, se proporciona con el complemento de enlace de 3.2.0.


Simplemente elimine la dependencia kapt "com.android.databinding ...". Si está utilizando Android Studio 3.2 o una versión mayor.


Tenía el mismo problema cuando estaba importando una clase en el enlace de datos, que no existía. Tambien usar

allprojects { gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xmaxerrs" << "1000" } } }

para recibir todos los mensajes de error para encontrar el problema. Para mi proyecto se limitó a 50.


Tuve el mismo problema.

Cambiar Kapt a annotationProcessor solo para DataBinding solucionó el problema.


Tuve que quitar la siguiente importación de Gradle,

androidx.room:room-compiler:2.1.0-alpha06

A pesar de que es un problema extraño, solo intenta eliminar las importaciones innecesarias, debería funcionar.


me enfrento a este problema cuando actualizo a Android Studio 3.2, cambio el plugin de Gradle de 3.2.0 a 3.1.4 y funciona bien -> Creo que es un problema de Gradle, se actualizará con seguridad muy pronto