我在使用gradle 3.0.0-alpha1的android studio 3.0预览中使用了Lombok。我在依赖项中有两个注释处理器:
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.
但如果我删除其中任何一个,它就会正常工作。
任何想法/解决方案?
答案 0 :(得分:2)
重新排列注释处理器的声明。将lombok移至房间编译器上方
答案 1 :(得分:0)
您是否在模型类中使用val?如果是,请更改为var
答案 2 :(得分:0)
尝试一下,它对我有用。
public String getmState(){
return mState;
}
更改为
public String getMState(){
return mState;
}
答案 3 :(得分:0)
在Edwin Nyawoli的回答中,我只想澄清一下
在build.gradle模块文件中,将Lombok依赖关系重新排序为Room依赖关系
// 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"