解决在Android Studio中Lombok不起作用的问题
文章目录
- 解决 Lombok 的注解在 Android Studio 中报红问题
- 解决本来应该由 Lombok 生成的方法在 Android Studio 中报红的问题
笔者报错时的运行环境:
Android Studio Flamingo | 2022.2.1 RC 1
Gradle 8.0.1
Lombok 1.18.26
JDK 17
Lombok 插件 0.34-2020.2
笔者在刚安装完的 Android Studio 中使用 Lombok 时,发现 Lombok 不起作用。具体遇到的问题有两个:
-
Lombok 的注解在 Android Studio 中报红。
-
本来应该由 Lombok 生成的方法在 Android Studio 中报红。
解决 Lombok 的注解在 Android Studio 中报红问题
先解决第一个问题。第一个问题是因为没有引入 Lombok 依赖。为此,需要在子项目的 build.gradle
文件中引入如下依赖:
build.gradle
dependencies {// Others...compileOnly 'org.projectlombok:lombok:1.18.26'annotationProcessor 'org.projectlombok:lombok:1.18.26'
}
这样就解决了注解报红的问题。
Lombok 官方解释:
-
https://projectlombok.org/setup/gradle
-
https://projectlombok.org/setup/android
解决本来应该由 Lombok 生成的方法在 Android Studio 中报红的问题
解决完第一个问题之后,实际上 Lombok 就起作用了。例如,在 Android Studio 中使用 rebuild,就可以在子项目的 build 文件夹(子项目\\build\\intermediates\\javac\\debug\\classes\\
)下看到 Lombok 生成的方法。
但问题是,Android Studio 仍然对本来应该由 Lombok 生成的方法报红,这说明这是 IDE 自身的问题。实际上,在 IDE 中使用 Lombok 需要 Lombok 插件的支持。
可以印证这一点。在 IntelliJ IDEA (IntelliJ IDEA 2022.3.1 (Ultimate Edition))中实际上已经内置了 Lombok 的插件。
但 Android Studio 却把这个插件给移除了,且无法在 Android Studio 插件商店中搜索到这个插件。
因此,需要自行安装 Lombok 的插件。Lombok 的插件地址:https://plugins.jetbrains.com/plugin/6317-lombok/versions
通常,最好下载一个插件的最新稳定版,但很遗憾,Lombok 的这个插件已经很久没有更新了。这带来的问题是,这个插件就算是下载下来,但由于 Android Studio 版本过高的原因,也无法在 Android Studio 中安装。但实际上这个插件是可以使用的。因此,需要手动更改下载下来的 Lombok 的这个插件所注明支持的版本。
现在主流的压缩软件基本已经支持压缩包内替换了,所以不用担心解压之后再打包的问题。不过,这个插件的压缩包内还有压缩包,所以需要解压二次,替换二次。
现在,经过两次解压,找到名为 plugin.xml
的文件。打开它,找到第 9 行 <idea-version../>
的位置。
然后再根据自己 Android Studio 的版本号作相应修改。
如图,需要同时修改 since-build
和 until-build
属性。
然后,经过两次替换即可制成符合 Android Studio 版本要求的 Lombok 插件。然后就可以在 Android Studio 中安装了。
Lombok 插件安装完之后,重启 Android Studio,可以发现方法报错已经消失了。