Lombok annotations don't work after upgrading to Android Studio 4.0

2.3k Views Asked by At

After upgrading Android studio to 4.0 version Lombok annotations stopped working. The same code was compiling with no errors before the upgrade.

The code:

    import lombok.AllArgsConstructor;
    import lombok.Builder;
    import lombok.Getter;
    import lombok.experimental.Accessors;

    @Getter
    @Builder
    @Accessors(fluent = true)
    @AllArgsConstructor
    public class UrlData {

        private int id;
        private String url;

    }

When trying to compile I am getting the following warnings and finally an error (not sure all of the warnings are relevant):

> Task :mycorelib:kaptDebugKotlin
[WARN] Incremental annotation processing requested, but support is disabled because the following processors are not incremental: org.greenrobot.eventbus.annotationprocessor.EventBusAnnotationProcessor (NON_INCREMENTAL).
> Task :app:kaptMyPrjDebugKotlin
warning: unknown enum constant KotlinClass$Kind.CLASS
  reason: class file for kotlin.jvm.internal.KotlinClass$Kind not foundwarning: You aren't using a compiler supported by lombok, so lombok will not work and has been disabled.
  Your processor is: org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessingEnvironment
  Lombok supports: OpenJDK javac, ECJ
error: cannot find symbol
        startActivity(WebViewActivity.getIntent(getActivity(), urlData.url()));
                                                                       ^
  symbol:   method url()
  location: variable urlData of type UrlData

Is there a way to fix this or should I remove lombok as unsupported?

1

There are 1 best solutions below

0
On

The trick seems to be to ignore Studio's/IntelliJs suggestion to replace the compileOnly-lombok line with the annotationProcessor and keep both lines in build.gradle:

compileOnly 'org.projectlombok:lombok:1.18.16'
annotationProcessor 'org.projectlombok:lombok:1.18.16'