【发布时间】: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 字符导致了此错误。例如在下面的模型中,progress 和 selected 字段不会导致错误,instagramItemId、instagramSharingId 字段会导致错误。
@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