【问题标题】:How To Deal With 'Cannot Find Getter For Field' Errors?如何处理“找不到字段的吸气剂”错误?
【发布时间】:2019-08-09 06:33:18
【问题描述】:

我刚刚提取了我以前的 android 项目,但现在两者都给出了找不到字段错误的 getter。

如 InstagramSharing.kt

@Entity
data class InstagramSharing(
    @PrimaryKey var instagramSharingId: String,
    ...
)

而当构建(InstagramSharing.java)

@androidx.room.Entity()
@kotlin.Metadata(...)
public final class InstagramSharing {
    @org.jetbrains.annotations.NotNull()
    @androidx.room.PrimaryKey()
    private java.lang.String instagramSharingId;

    @org.jetbrains.annotations.NotNull()
    public final java.lang.String getInstagramSharingId() {
        return null;
    }

    public final void setInstagramSharingId(@org.jetbrains.annotations.NotNull()
    java.lang.String p0) {
    }
}

但有趣的是输出 error: Cannot find getter for field. private java.lang.String instagramSharingId;

有没有办法克服这个奇怪的问题?


编辑

经过深入分析,似乎是 I-i 字符导致了此错误。例如在下面的模型中,progressselected 字段不会导致错误,instagramItemIdinstagramSharingId 字段会导致错误。

@Entity
data class InstagramItemProgress(
    @PrimaryKey
    var instagramItemId: String,
    var instagramSharingId: String,
    var progress: String,
    var selected: Boolean
)

error: Cannot find getter for field. private java.lang.String instagramItemId;

error: Cannot find getter for field. private java.lang.String instagramSharingId;

【问题讨论】:

  • 您使用的是哪个版本的 Room?
  • 拉取项目时是2.1.0-alpha07,然后更改为最新的2.2.0-alpha01,但同样奇怪
  • 尝试使用val 而不是var
  • @BirjuVachhani 不幸没有解决

标签: android kotlin android-room


【解决方案1】:

我的机器语言是土耳其语。我不敢相信,但是将语言更改为英语解决了这个问题。

注意:我永远不想误导有同样问题的人。就我而言,没关系

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-17
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多