projectlombok - lombok java maven
AllArgsConstructor de lombok no se encuentra en Android Studio (5)
Debe agregar la supresión en sus AllArgsConstructors. Si no desea agregar un nuevo archivo de configuración, simplemente puede hacer esto:
@AllArgsConstructor(suppressConstructorProperties = true)
Divulgación: no soy un desarrollador de Lombok: D
Cuando creo una nueva clase Java con uno o más campos y adjunto la anotación @AllArgsConstructor
de lombok a ella, recibo este mensaje
Error:(9, 1) error: cannot find symbol class ConstructorProperties
desde la consola Gradle Build. Pude reproducir esto creando un nuevo proyecto de Android vacío con esta configuración.
La Clase (nunca utilizada o instanciada)
@lombok.AllArgsConstructor
public class Model {
int foo;
String bar;
}
build.gradle:
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
compile ''com.android.support:appcompat-v7:21.0.3''
provided ''org.projectlombok:lombok:1.14.8''
}
@Getter
y @Setter
de lombok no causan ningún problema e incluso el @NoArgsConstructor
no es mencionado por gradle, por lo que es AllArgsConstructor
si no hay campos.
¿Se trata de un error de Lombok o está ubicado frente a la pantalla?
Lombok genera las @ConstructorProperties
por defecto para todos los constructores generados. En Android, esa anotación no está disponible. Como se menciona en la documentation , es posible suprimir la generación especificando suppressConstructorProperties=true
para cada @XxxArgsConstructor, o usando la siguiente línea en un archivo de alto nivel lombok.config
:
lombok.anyConstructor.suppressConstructorProperties = true
Divulgación: Soy un desarrollador de Lombok
También:
Si se dirige a Java 8 en su proyecto de Android (por ejemplo, mediante el uso de retrolambda), este error no aparecerá.
Tuve el mismo problema después de actualizar Android Studio.
Ninguna de las otras respuestas, incluida la aceptada, me ayudó.
Finalmente, he actualizado la versión de lombok a 1.16.20
(la última para hoy) y el error desapareció.
Espero que le ahorre tiempo a alguien.
@AllArgsConstructor(suppressConstructorProperties = true)
ya no funciona. Si intentas esto, obtienes lo siguiente:
Esta característica obsoleta ya no es compatible. Quítalo puede crear un archivo lombok.config con ''lombok.anyConstructor.suppressConstructorProperties = true''.
La solución de trabajo es agregar lombok.anyConstructor.suppressConstructorProperties = true
al archivo lombok.config
.