Como se indica en varios artículos (ejemplo: blog de Jetbrains ) y documentación oficial, para acelerar las compilaciones de aplicaciones de Android, se recomienda habilitar la evitación de compilación. Para hacerlo, se deben agregar los siguientes parámetros a gradle.properties:
# positive value will enable caching # use the same value as the number of modules that use kapt kapt.classloaders.cache.size=5 # disable for caching to work kapt.include.compile.classpath=falseY eso es lo que hice. Pero si ambos parámetros están en gradle.properties, entonces uno de los módulos con enlace de datos falla aleatoriamente al compilar indicando que faltan las clases DataBindingImpl. Si elimino al menos uno de los parámetros mencionados, todo se compila sin problemas.
Dado que estoy limpiando todo el proyecto y luego reconstruyéndolo, se debe omitir la compilación porque, en teoría, se cambia todo el contenido del archivo.
¿Hay algo con el enlace de datos y la evitación de compilación que sea incompatible? Parece que no puedo encontrar ninguna información sobre esto. ¿Por qué con estas banderas las clases DataBindingImpl dejan de generarse?
Todo el contenido de gradle.properties:
org.gradle.jvmargs=-Xmx2048m -XX:+UseParallelGC -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true android.useAndroidX=true android.enableJetifier=true org.gradle.daemon=true org.gradle.caching=true kapt.incremental.apt=true kapt.classloaders.cache.size=8 kapt.include.compile.classpath=falsePuede agregar el siguiente código en el archivo gradle.properties para evitar errores en el enlace de datos
kapt.classloaders.cache.disableForProcessors=android.databinding.annotationprocessor.ProcessDataBinding