当前位置: 首页 > 知识库问答 >
问题:

Lombok无法使用“Android room”。给出“错误:找不到字段的getter”

祝昊东
2023-03-14

我在android studio 3.0预览版和gradle 3.0中使用Lombok。0-1。我的依赖项中有以下两个注释处理器:

annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha1"
annotationProcessor "org.projectlombok:lombok:1.16.16"

现在,如果我在同一个类中使用来自两个依赖项的注释,如:

@Entity(tableName = "test")
@Getter
public final class TestEntity {...}

它将产生一个错误,即:

error: Cannot find getter for field.

但是如果我去掉其中的任何一个,它都可以正常工作。

有什么想法/解决方案吗?

共有3个答案

荣俊杰
2023-03-14

您在模型类中使用val吗?如果是,则更改为var

拓拔嘉颖
2023-03-14

Edwin Nyawoli的回答我只是想说清楚

在你的身体里。gradle模块文件,将Lombok依赖项重新排序到房间依赖项之上

// Lombok
compileOnly "org.projectlombok:lombok:$lombok_version"
annotationProcessor "org.projectlombok:lombok:$lombok_version"

// Room
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
子车飞鹏
2023-03-14

重新排序注释处理器声明。将lombok移到房间编译器上方

 类似资料:
  • 如何查找查询中出现错误的字段: 通用域名格式。abc。快速的常见的db。例外UncategorizedSQLException:CallableStatementCallback;SQL[{call p_proc_(?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)}];[错误代码:257;SQLState:42000;消息:不允许从数据类型'VARCHAR'隐式

  • 我正在使用springboot和gradle,我正在尝试在控制器中执行下面的代码。 在编译时,我得到以下错误 错误:找不到symbol=List.of(“水星”,“金星”,“地球”,“火星”,^symbol:方法of(String,String,String,String,String,String,String,String,String,String) 位置:接口列表 我的分级档案 sourc

  • 我有一个类,如下所示: 我得到以下错误: [错误]无法执行目标组织。阿帕奇。专家插件:maven javadoc插件:2.10。4:project foo上的javadoc(默认cli):JavaDocs报告生成中发生错误: [错误]退出代码:1-/home/workspace/foo/src/main/java/com/foo/foo。java:34:错误:找不到symbol [error]公共

  • 编译以下使用Lombok自动生成getter和setter的类时,Checkstyle引发编译错误: 实用工具类不应具有公共或默认构造函数 当Checkstyle没有按照Checkstyle文档中指定的实用程序类定义时,为什么Checkstyle将上面的类归类为实用程序类?即只包含静态方法或字段的类。checkstyle解析的是默认源文本文件还是lombok生成的源文件?

  • 我正在尝试运行这段代码,它用于检查设置是否正确: 我所做的所有谷歌搜索都让我一遍又一遍地检查本地库,我很确定我做得对。当我在这个项目的构建路径中找到库时,JRE系统库和Slick2D都会说本地库的位置:…/windows/x64。我只尝试过…/windows,我尝试过JRE没有本地位置。我遵循了两个不同的教程来学习如何做到这一点,并且在尝试运行这段简单代码时不断出现错误。有什么帮助吗?