龙目岛没有使用" Android room"。给出"错误:找不到字段的getter"

时间:2017-05-26 14:14:21

标签: android lombok android-room intellij-lombok-plugin

我在使用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.

但如果我删除其中任何一个,它就会正常工作。

任何想法/解决方案?

4 个答案:

答案 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"