De repente, empiezo a recibir este error, y no tengo idea de por qué si alguien me dice dónde está este error, será lo suficientemente útil. Todo lo que puedo obtener es esto debido a la nueva actualización de Android Studio. Resumen detallado del error que estoy recibiendo.
Task :app:kaptDebugKotlin ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1C:\Users\shubh\Downloads\MarginCalculator\app\build\generated\source\kapt\debug\com\kotlin_developer\margincalculator\DataBinderMapperImpl.java:10: error: cannot find symbol import com.kotlin_developer.margincalculator.databinding.FragmentCalculatorScreenBindingImpl; symbol: class FragmentCalculatorScreenBindingImpl Task :app:kaptDebugKotlin FAILED location: package com.kotlin_developer.margincalculator.databinding FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:kaptDebugKotlin'. > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution > java.lang.reflect.InvocationTargetException (no error message) * 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 BUILD FAILED in 17s 29 actionable tasks: 27 executed, 2 up-to-dateSi ha actualizado a classpath 'com.android.tools.build:gradle:4.0.0', reemplácelo en la versión anterior
dependencies { classpath 'com.android.tools.build:gradle:3.6.3' }Y cambiar gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4- all.zip`Tuve el mismo error durante un tiempo y luego comencé a revisar los otros paquetes. Me di cuenta de que había cometido un error tipográfico en el código de mi base de datos. Entonces, "Revise su base de datos y otros archivos de clase de actividad, puede encontrar algunos errores allí".
Para mí, un montón de errores de referencia y un error en las expresiones XML con DataBinding produjeron este error.
Eliminé una <variable/> en un archivo de layout porque pensé que ya no la necesito. Olvidé que tenía la variable a la que se hace referencia en el archivo de layout .
Después de construir el proyecto, esto produjo un error, donde no fue posible importar la clase BindingImpl , porque no existe y este error solo se mostró como una advertencia paralela al error anterior de KaptExecution .
Después de buscar por un tiempo, encontré este error y lo resolví. Luego, se mostraron un montón de errores de referencia, porque cambié el nombre de algo y no lo cambié en los archivos de Fragment . Después de resolver estos errores también, la compilación finalizó sin errores ni advertencias.
Yo tuve el mismo problema. Déjame mostrarte el ejemplo de cómo terminé con el problema y la forma en que lo resolví, tal vez puedas obtener una imagen más amplia.
Antes de resolver
@Entity(tableName = "modules") data class Module ( @PrimaryKey val id: Int, val name: String ) @Entity(tableName = "sessions") data class Session ( @PrimaryKey(autoGenerate = true) var id: Int, @ColumnInfo(name = "module_id") val moduleId: Int, @ColumnInfo(name = "start_time") val startTime: String, @ColumnInfo(name = "end_time") val endTime: String ) data class ModuleSession ( @Embedded val module: Module, @Relation( parentColumn = "id", entityColumn = "module_id" ) val sessions: List<Session>, @ColumnInfo(name = "is_updated") val isUpdated: Boolean = false // The problem )en la DAO
@Transaction @Query("SELECT * FROM modules") abstract suspend fun getModuleSession(): List<ModuleSession>El error que obtuve fue
A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecutionAsí que profundicé más y encontré el siguiente mensaje
The columns returned by the query does not have the fields [isUpdated] in com.gmanix.oncampusprototype.Persistence.ModuleSession even though they are annotated as non-null or primitive. Columns returned by the query: [id,name] public abstract java.lang.Object getModuleSession(@org.jetbrains.annotations.NotNull()Eliminé el campo IsUpdated de POJO ModuleSession y lo agregué a la tabla de sesión
Después de los cambios
@Entity(tableName = "sessions") data class Session ( @PrimaryKey(autoGenerate = true) var id: Int, @ColumnInfo(name = "module_id") val moduleId: Int, @ColumnInfo(name = "start_time") val startTime: String, @ColumnInfo(name = "end_time") val endTime: String, @ColumnInfo(name = "is_updated") val isUpdated: Boolean = false ) data class ModuleSession ( @Embedded val module: Module, @Relation( parentColumn = "id", entityColumn = "module_id" ) val sessions: List<Session> ) Por otro lado, verifique si hay algún campo en la declaración SELECT que sea sospechoso de causar problemas o puede anotarlo con @Ignore
Sin embargo, puede publicar su código si aún no se siente cómodo.
Espero que eso pueda ayudar
Un saludo a la respuesta anterior de @Rene Spies, también recibí este error mientras trabajaba con el enlace de datos. Resulta que al motor de compilación no le gusta cuando colocas la anotación @Bindable en un campo en el constructor principal de una data class en Kotlin.
Así que nunca hagas lo siguiente,
data class MyAwesomePojo( @Bindable var firstname: String, var lastname: String )en cambio lo que tienes que hacer es
data class MyCorrectAwesomePojo( var lastname: String ):{ @get:Bindable var firstname: String set(value){ field = value } }Bonificación: recuerde verificar los mismos valores antes de establecer el valor en el campo si está tratando de usar un enlace bidireccional como yo para evitar un bucle infinito de configuración y obtención.
Tengo el mismo problema, así que traté de obtener más información, haciendo
gradle->aplicación->Tareas->Crear->ensamblar
Después de esto, recibí un error exacto que decía "Error al procesar la anotación". Revisé mi clase DAO recientemente modificada y descubrí que uno de los tipos de devolución del método no estaba definido.
//Before @Query("SELECT countryName FROM country_table WHERE countryCode= :code") fun getCountryNameForCode(code: String) //After @Query("SELECT countryName FROM country_table WHERE countryCode= :code") fun getCountryNameForCode(code: String): StringCambiar
implementation "android.arch.persistence.room:runtime:1.1.1" kapt "android.arch.persistence.room:compiler:1.1.1"Hasta (actualizado 4 - septiembre-2021)
implementation "androidx.room:room-runtime:2.3.0" annotationProcessor "androidx.room:room-compiler:2.3.0"Curiosamente, recibí este error porque agregué la descripción de la modificación. Tenga cuidado de no confundir la descripción de Room y Retrofit.
En mi caso: Problema resuelto
Pasos:
<variable name="viewModel" type="com.xx.AppViewModel" / > android:text="@{viewModel.simName}" binding.viewModel = viewModelLimpie el proyecto y vuelva a compilar.
Agregue la variable viewModel: en XML y proyecto de compilación .
< variable name="viewModel" type="com.xx.AppViewModel" / > binding.viewModel = viewModel android:text="@{viewModel.simName}"- Espero que funcione para usted también.
Tal vez llegué un poco tarde a la respuesta pero, de todos modos, estaba recibiendo el mismo error. La falla de compilación puede deberse a algún error que Android Studio no señala, probablemente debido a que el tamaño del proyecto es muy grande.
Aquí está la manera fácil de señalar el error exacto.
en algunos casos puede ayudar gradle.properties
kapt.include.compile.classpath=trueTuve el mismo problema con Room y no estaba usando viewBinding .
Lo arreglé usando exportSchema a falso en mi clase de base de datos.
@Database(entities = [ModelClass::class], version = 1, exportSchema = false) abstract class ModelDatabase: RoomDatabase() {}Recuerde: exportScehma podría variar según su caso de uso, generalmente permanece falso, así que lo puse en falso.
La forma de averiguar cuál es el problema subyacente es ejecutar el siguiente comando:
./gradlew assembleDebug --stacktraceen mi caso, he añadido esta línea
android { . . . kapt.includeCompileClasspath = false }En mi caso, cambié globalmente una variable UserManager a NetWorkManager y en todas partes donde había clases de UserManager se convirtieron en NetworkManager.
Debido a que estoy usando Hilt, tuve que construir el proyecto nuevamente.
Limpié el Proyecto y Kotlin mostró dónde estaban los errores.
También me encontré con el mismo problema, así que solo intenté eliminar la carpeta .idea y la carpeta .gradle del proyecto, luego también eliminé la carpeta de compilación dentro de la carpeta de la aplicación y luego reinicié el IDE de Android Studio y funcionó para mí.
En mi caso usé room y uno de mis métodos databasDao tiene un parámetro sin usar y lamentablemente android studio no me avisa correctamente
Para mí, el problema era tener 2 claves principales definidas en el modelo.
// before @field:ColumnInfo(name = "id") @field:PrimaryKey(autoGenerate = true) var id: Long = 0, @field:ColumnInfo(name = "name") @field:PrimaryKey var name: String, //after @field:ColumnInfo(name = "id") @field:PrimaryKey(autoGenerate = true) var id: Long = 0, @field:ColumnInfo(name = "name") @field:NotNull var name: String,Tuve que reconstruir el proyecto y cambiar un poco la clase Dao para activar el mensaje sobre el problema.
intenta construir tu proyecto con
kapt.use.worker.api=falseen su archivo de configuración gradle.properties
Referencia: https://youtrack.jetbrains.com/issue/KT-40750
La interfaz de usuario de Android Studio solo ocultaba el error...
cuando ocurrió el error, resaltó el elemento en la vista de lista y mostró un mensaje inútil en la vista de terminal. 
para encontrar el error real, seleccione el elemento raíz en la vista de lista para que Android Studio muestre el resultado de compilación completo en la vista de terminal, luego desplácese para encontrar el error. 
Este método me ocurre todo, hay un problema con la base de datos de Room y Coroutines , incluso errores de ortografía. Por último, cuando intentaba devolver un valor único con un Flujo después de la columna insertada, por: Flow<Long> de las clases de DAO.
Debe ser una función de suspend y solo tipo Long para regresar después de la columna insertada.
Estos problemas son ambiguos en algún momento, así que intente leer todos los mensajes de salida de compilación, el mensaje que me ayudó fue: error: Not sure how to handle insert method's return type.
Nada funcionó, probé todo y finalmente encontré un pequeño error que estaba creando un gran problema.
Vuelva a cada archivo recién creado para la base de datos y verifique cuidadosamente el código línea por línea de cada archivo.
Verifique la clase de base de datos y verifique si Dao está declarado como, por ejemplo,
abstract val commentDatabaseDao: CommentDatabaseDaodeclare as val not var , este fue en mi caso y finalmente por esto resuelto.
Me acaba de pasar esto. Otro desarrollador no había completado una combinación correctamente, por lo que esta línea estaba en el código
<<<<<<< HEADEn lugar de obtener un error de compilación, obtuve el error KaptExecution.
Después de mucho dolor, decidí probar kapt annotationProcessor la esperanza de que al menos muestre un mensaje de error o algo que pueda ayudarme a localizar la fuente. Pero afortunadamente (o desafortunadamente, debido a la pérdida de tiempo), se construyó con éxito y sin ningún error. Es principalmente un error en kapt en sí. Entonces, pruebe esta solución y puede ayudar.
Yo tuve el mismo problema. En mi caso, el problema era sobre la base de datos. tuve que cambiar esta línea de código @Database(entities = [SearchedLocation::class, FavoriteLocation::class], version = 1)
Agregué otra tabla en la base de datos pero olvidé agregar la tabla en la línea de arriba.
Yo tenía el mismo error. Tuve dos problemas.
Es posible que deba agregar
implementación 'androidx.room:room-ktx:2.2.5'
Había eliminado un archivo al que se hacía referencia como miembro en uno de los archivos activity_xml. El error nunca me dio ninguna pista hasta que lo cambié a annotationProcessor en lugar de kapt, luego señaló el error, encontré el archivo y, efectivamente, tenía una referencia a un archivo que ya no usaba y fue eliminado. Eliminé esta referencia de datos del xml y se aclaró todo. Luego lo puse de nuevo a kapt.
Acabo de actualizar Android Studio IDE a la versión 4.1.1 y tengo un problema similar.
Lo que me di cuenta fue...
… antes no tenía algunas clases *_Impl (las conozco en cosas de Kotlin) y ni siquiera algunas clases nuevas de *Tests .
Entonces, después de "ejecutar todo el mundo" para encontrar una solución, tomé una decisión intuitiva y justa: eliminé todos esos archivos dentro de mis paquetes "construidos a mano" que no estaban allí antes de la actualización de Android Studio .
¿Y adivina qué?
Funcionó. No hay problemas, ni siquiera un problema sobre kapt .
No digo que sea una solución final. Pero te puede funcionar.
Tener una buena.
Este problema también ocurre si instaló el nuevo complemento kotlin ( 1.4.20-release-Studio4.1-1 ) y tiene daga ( kapt 'com.google.dagger:dagger-compiler:2.30' ). En tal caso, una solución podría ser reemplazar el plugin: 'kotlin-android-extensions' con enlace de vista ( https://developer.android.com/topic/libraries/view-binding )
Sí, también recibí este error y también era un problema relacionado con la Room .
Había definido mis TypeConverters , pero nunca anoté mi base de Room database con: @TypeConverters(TypeConverter.class) .
En mi caso, estaba usando Coroutines pero olvidé agregar Kotlin Extensions y soporte de Coroutines para Room
def room_version = "2.2.6" implementación "androidx.room:room-ktx:$room_version"
En mi caso, degradar la versión de kotlin (de 1.4.21 a 1.3.21) resolvió mi problema.
buildscript { ext.kotlin_version = '1.3.21' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:4.1.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }}
En mi caso, olvidé agregar @PrimaryKey en la clase Entity.
Puede suceder si se usan caracteres que no son del inglés en expresiones vinculantes dentro del diseño. Por ejemplo:
<TextView ... android:text="@{ viewModel.letterTitle, default=`Важное письмо` }" />Puede verificar este caso si ejecuta "Ejecutar con la opción --stacktrace" . Si stacktrace contiene el mensaje "MalformedByteSequenceException: byte 2 no válido de secuencia UTF-8 de 2 bytes". entonces posiblemente
Tuve el mismo problema cuando agregué ROOM a mi aplicación (Kotlin). Tuve dificultades para descubrir qué estaba mal y finalmente descubrí que estaba usando lo siguiente para agregar ROOM a mi aplicación.
//room implementation 'android.arch.persistence.room:runtime:1.1.1' kapt "android.arch.persistence.room:compiler:1.1.1"Así que cambié las dos líneas anteriores con las siguientes y me deshice del dolor.
def room_version = "2.2.6" implementation "androidx.room:room-runtime:$room_version" kapt "androidx.room:room-compiler:$room_version"Presiona el botón arriba si te ayudó :D
Si estás usando Kotlin con Hilt
Asegúrese de haber anotado su clase de módulo con
@Module @InstallIn(SingletonComponent::class) class AppModule { //... }El mismo problema para mí aquí. En mi caso, la razón es que olvidé una anotación @Module en uno de mis módulos dagger.
Para encontrar el problema real de una alerta AS de este tipo, es necesario profundizar: el mensaje en el título es solo el final, se muestran 1 o más causas del error seleccionando el elemento raíz a la izquierda, que le muestra el exacto problemas, verifique mi pantalla de impresión a continuación:
Obtuve exactamente el mismo error al actualizar a kotlin_version = '1.4.31' (desde 1.3.71)
La siguiente actualización de moshi solucionó mi problema:
implementation("com.squareup.moshi:moshi:1.11.0") kapt("com.squareup.moshi:moshi-kotlin-codegen:1.11.0")Resuelto simplemente aumentando la versión de gradle a la última:
Está en el archivo gradle de nivel de proyecto, en el bloque de dependencias.
classpath "com.android.tools.build:gradle:4.xx"Esto me sucedió cuando intenté inyectar un campo privado dentro de una actividad usando Hilt. La solución fue eliminar la palabra clave privada, así que cambie
@Inject private lateinit var appAnalytics: AppAnalyticspara
@Inject lateinit var appAnalytics: AppAnalyticsTengo una enumeración en la propiedad de mi entidad usando ROOM. Provoca el siguiente error después de una larga búsqueda.
No se pudo ejecutar la tarea ':app:kaptDebugKotlin'.
Se produjo un error al ejecutar org.jetbrains.kotlin.gradle.internal.KaptExecution java.lang.reflect.InvocationTargetException (sin mensaje de error)
enum class Color{RED,BLACK,BLUE,GREEN,WHITE} @Entity(tableName = "flower_table") data class Flower( @PrimaryKey(autoGenerate = true) val id: Int, @ColumnInfo(name = "name") val name: String, @ColumnInfo(name = "color") val color: Color) val flower = Flower(2, "rose", Color.RED)Mi solución es usar el índice de la enumeración en lugar de la propiedad de la entidad.
@Entity(tableName = "flower_table") data class Flower( @PrimaryKey(autoGenerate = true) val id: Int, @ColumnInfo(name = "name") val name: String, @ColumnInfo(name = "color") val color: Int) val flower = Flower(4, "tulip", Color.BLUE.ordinal)¡Espero que te pueda ayudar! PS, no olvide actualizar el número de versión en su clase de base de datos.
@Database(entities = [Flower::class], version = 2) abstract class FlowerRoomDatabase : RoomDatabase() {En mi caso, recibí este error al pasar de jcenter() a mavenCentral(), una de mis dependencias estaba disponible solo en jcenter() y no en mavenCentral(). Así que envié el problema al propietario por lo mismo en github y esperaré para eliminar jcenter() hasta que se mueva.
Estaba recibiendo el mismo error, y para mí el problema era que necesitaba cambiar de Gradle JDK JDK version 16.0.1 a Android Studio java home version 11.0.10 en Android Studio > Preferencias... > Compilación, Ejecución, Despliegue > Compilación Herramientas > Gradle
Recibí este error después de hacer lo siguiente:
1.5.2116 Al ejecutar assembleDebug con --stacktrace , vi esta excepción en los registros: Caused by: java.lang.IllegalAccessError: class org.jetbrains.kotlin.kapt3.base.KaptContext . Buscando, encontré este enlace que habla sobre problemas de compatibilidad entre kapt y JDK16+ .
Resolví el problema haciendo este cambio en mi archivo gradle.properties : org.gradle.jvmargs=-Xmx1536m --illegal-access=permit
Empecé a recibir esto después de actualizar mi Android Studio a Arctic Fox(2020.3.1) .
Lo resolví actualizando mi versión de JDK de 1.8 a Embedded JDK .
Para cambiar el JDK:
Abra su proyecto en Android Studio y seleccione Archivo > Configuración... > Compilación, ejecución, implementación > Herramientas de compilación > Gradle
En Mac : Android Studio > Preferencias... > Compilación, ejecución, implementación > Herramientas de compilación > Gradle.
En Gradle JDK, elija la opción Embedded JDK.
Como se menciona aquí
Para mí, este problema ocurrió debido a la diferencia de versión de Java
En mi caso
-La versión de java predeterminada de mi estudio era 11
-Tengo una biblioteca en mi proyecto con soporte para java versión 8
Reparar -
1.enumeró todas las versiones de Java instaladas con el comando /usr/libexec/java_home -V
2.Copie la ruta java8:/Library/Java/JavaVirtualMachines/1.8.0_232.jdk/Contents/Home
3. vaya a Archivo - Estructura del proyecto - Ubicación SDK - Ubicación JDK
Agregue su ruta de Java allí
Este error también se debe a errores de enlace de datos.
Haga clic en --stacktrace en la terminal para ver el error en detalle. Lo puedes encontrar aquí:
Para mí, el problema era que tenía una MacBook Pro con el nuevo chip M1. Para resolver el problema, necesito agregar kapt "org.xerial:sqlite-jdbc:3.34.0" antes del compilador de habitaciones. Ver más aquí .
Me tomó días encontrar la solución a este problema, use una versión alta del complemento androidx.lifecycle:lifecycle-compiler.
implementation 'androidx.lifecycle:lifecycle-runtime:2.2.0-alpha03'
kapt 'androidx.lifecycle:lifecycle-compiler:2.2.0-alpha03'
y elimine esto de su código kapt "android.arch.lifecycle:compiler:1.1.1"
De acuerdo, este problema también ocurre si está utilizando Android Studio 4.1.2.
Entonces, lo que tienes que hacer es:
Descargar jdk 11 (Buscar y descargar)
En Android Studio, vaya a Archivo -> Estructura del proyecto -> Ubicación de Jdk -> Cambie a la ruta del Jdk que acaba de descargar.
En mi caso, simplemente cambié el nombre de rootProject.name en /settings.gradle. Repetí esta acción nuevamente y funciona. No tiene sentido por qué sucedió, pero espero que pueda ayudar a otros y ahorrarles tiempo.
Parece que hay un problema con la biblioteca de la sala y los chips Apple M1.
Actualice la versión lib de su sala a 2.4.0-alpha03 o superior y vuelva a sincronizar el proyecto.
¡Trabajó para mi!
En mi caso, había dependencias más antiguas que necesitaban una actualización, por lo que puede seguir esto:
1.ARCHIVO -> ESTRUCTURA DEL PROYECTO ->
2.Ir a SUGERENCIAS ->
3. En la SECCIÓN DE ADVERTENCIA, Android Studio le mostrará qué dependencias deben actualizarse->
4. Simplemente actualícelo directamente desde allí ->
5.HAGA CLIC EN APLICAR->
¡Funcionará ahora!
¡Gracias!
Para mí, el problema es sobre el complemento kotlin gradle. A veces, Android Studio actualiza el complemento Kotlin Gradle por sí mismo. Revertir el complemento gradle resuelve el problema.
Por ejemplo de esto:
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"a esto:
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61"