解决在Android Studio中Lombok不起作用的问题

这篇具有很好参考价值的文章主要介绍了解决在Android Studio中Lombok不起作用的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

笔者报错时的运行环境:

  • 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 不起作用。具体遇到的问题有两个:

  1. Lombok 的注解在 Android Studio 中报红。

  2. 本来应该由 Lombok 生成的方法在 Android Studio 中报红。

在 Gradle 中使用 Lombok 的注意事项

  1. Lombok 的这两个依赖关键字 implementation、annotationProcessor 同时不能少。

    • 如果缺少 implementation,则在 IDE 中会直接报红,编译和运行也会直接失败。

    • 如果缺少 annotationProcessor,则编译和运行会直接失败。

  2. Lombok 依赖不具有传递性,在每个使用它的模块都要注明对它的依赖(在依赖模块中对 Lombok 使用关键字 api 也没用)。

解决 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 lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

  但 Android Studio 却把这个插件给移除了,且无法在 Android Studio 插件商店中搜索到这个插件。

android lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

  因此,需要自行安装 Lombok 的插件。Lombok 的插件地址:https://plugins.jetbrains.com/plugin/6317-lombok/versions

android lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

方法 1:手动调整 Lombok 压缩包的支持版本

  通常,最好下载一个插件的最新稳定版,但很遗憾,Lombok 的这个插件已经很久没有更新了。这带来的问题是,这个插件就算是下载下来,但由于 Android Studio 版本过高的原因,也无法在 Android Studio 中安装。但实际上这个插件是可以使用的。因此,需要手动更改下载下来的 Lombok 的这个插件所注明支持的版本。

  现在主流的压缩软件基本已经支持压缩包内替换了,所以不用担心解压之后再打包的问题。不过,这个插件的压缩包内还有压缩包,所以需要解压二次,替换二次。

android lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

android lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

  现在,经过两次解压,找到名为 plugin.xml 的文件。打开它,找到第 9 行 <idea-version../> 的位置。

android lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

  然后再根据自己 Android Studio 的版本号作相应修改。

android lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

  如图,需要同时修改 since-builduntil-build 属性。

android lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

  然后,经过两次替换即可制成符合 Android Studio 版本要求的 Lombok 插件。然后就可以在 Android Studio 中安装了。

android lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

android lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

方法 2:直接解压到 Android Studio 插件安装目录

  方法 1 的弊端就是每次安装新的 Android Studio 就要手动去 Lombok 压缩包内更改一次支持版本。这很麻烦,实际上,可以 Android Studio 的插件可以免在 Android Studio 运行界面中安装的。

  Android Studio 的插件目录实际上位于 Android Studio 安装目录\plugins 中。因此,可以直接解压 Lombok 的压缩包,然后将其直接拷贝到 Android Studio 插件目录中(不需要对压缩包内的文件作任何改动)。

  Lombok 压缩包解压之后会生成一个名为 lombok-plugin 的文件夹。直接把这个文件夹拷贝进 Android Studio 插件目录中即可。

  如下图所示。

android lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

  当然,如果觉得这个文件夹 lombok-plugin 的名称不好听,可以改成其它名称(如 lombok ),这不影响安装。

  这样做了之后,再启动 Android Studio,就可以发现该插件已经安装了。

android lombok,疑难杂症,IDE,Android,android studio,android,gradle,Lombok

  Lombok 插件安装完之后,重启 Android Studio,可以发现方法报错已经消失了。文章来源地址https://www.toymoban.com/news/detail-594938.html

到了这里,关于解决在Android Studio中Lombok不起作用的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IDEA2021.1.3版本lombok插件--代码爆红问题解决

      最近,突然心血来潮将自己工作中开发使用的idea升级到2021.1.3版本,安装成功后,打开代码发现 有关get、set方法全部爆红 ,不用想,肯定是 Lombok插件问题 ,通过setting-plugin里面搜索Lombok居然不存在,再一看原来是该版本idea自带Lombok插件,与当前环境不适配。    但是

    2024年02月08日
    浏览(61)
  • JDK 21报错:NoSuchFieldError解决方案 - Lombok版本兼容性问题解析

    JDK 21的报错NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field \\\'com.sun.tools.javac.tree.JCTree qualid\\\'通常涉及到Lombok库版本与Java编译器之间的兼容性问题。最近的Lombok版本通常会修复旧版本中的错误,因此你可以尝试升级Lombok版本来解决这个问题。 你需要更新L

    2024年02月04日
    浏览(75)
  • Maven项目打包,出现提示 Lombok 版本和 jdk 的编译器不兼容问题,解决办法。

    class lombok.javac.apt.LombokProcessor (in unnamed module @0x7d21852b) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x7d21852b 这些引用都是关于Java编译器插件Lombok的错误信息。Lombok是一个

    2024年02月05日
    浏览(53)
  • MyBatis:生命周期、作用域、结果集映射 ResultMap、日志、分页、使用注解开发、Lombok

    理解不同 作用域 和 生命周期 类别是至关重要的,因为错误的使用会导致非常严重的 并发问题 。 SqlSessionFactoryBuilder 一旦创建了 SqlSessionFactory,就不再需要它了; 最佳作用域 是方法作用域(也就是局部方法变量)。 SqlSessionFactory :相当于 数据库连接池 一旦被创建就应该在

    2024年02月02日
    浏览(56)
  • idea使用lombok编译问题

    idea编译报错问题如下: 解决方案 1.先将jdk替换为openjdk,随后将项目配置都修改为新增的opendjk 2.在idea配置中File-Settings中找到配置如下 -Djps.track.ap.dependencies=false

    2024年02月05日
    浏览(66)
  • Android问题笔记 - Android Studio日志乱码原因与解决

    专栏分享 点击跳转=Unity3D特效百例 点击跳转=案例项目实战源码 点击跳转=游戏脚本-辅助自动化 点击跳转=Android控件全解手册 点击跳转=Scratch编程案例 点击跳转=软考全系列 众所周知,人生是一个漫长的流程,不断 克服困难 ,不断反思前进的过程。在这个过程中会产生很多对

    2024年02月03日
    浏览(56)
  • 解决问题:Android Studio启动不了

    1、启动不了之前的操作: build报错的提示的都是乱码,于是网上搜了下,去菜单Help Edit Custom VM options 此时AS打开了AS安装目录下bin/studio64.exe.vmoptions 这个文件 根据网上说法在里边加一句 即可,于是加了,结果AS闪退。 再也启动不了,重启电脑后也不行,重新安装也不行。 看

    2024年02月04日
    浏览(46)
  • 【Android】解决Android Studio中的虚拟设备无法上网问题

    前言 : 使用AndroidStudio自带的虚拟设备在调试软件时, 发现无法联网,然后用虚拟设备自带的浏览器进行网页访问也是失败的, 因此可以说明是整个虚拟设备是无法正常联网通讯的! 问题原因 :可能你的虚拟设备的DNS设置和你的电脑的DNS不在一个网段上,需要修改虚拟设备的

    2024年02月06日
    浏览(49)
  • IDEA中lombok无法生效的问题

    今天遇到一个很诡异的现象,就是实体类在某些包下编译可以正常通过,在公共包下实体类就编译不通过,@Data注解没有生成对应的Getter和Setter方法。 1. 检查是否安装了lombok插件 确认安装 2. 是否引入到pom文件 确认引入 3. 手动自己生成Getter和Setter方法,公共包下也编译通过,

    2024年02月14日
    浏览(35)
  • 最新解决Android Studio Gradle同步问题

    你是否还在被“Gradle Download”一直在下载最终导致Read Time out ???  看完我的博客,保证你从此无忧虑!!! 目录 开门见山,放出我的结果  1、打开Android Studio项目点击同步 (非常关键 大前提!!!)  2、手动下载gradle以及配置步骤 2.1 手动下载对应的gradle版本 2.1.1 由于

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包