Met "error: Multiple fields have the same columnName" when building Android AOSP
Met "error: Multiple fields have the same columnName" when building Android AOSP
遇到Android房间时遇到错误。我用下面的3class来说明。 Class A
和 B
是 Android 应用中的 2 个实体 class。 Class C 是 Android 框架中修改的 class(更具体地说,它是我试图自定义的核心 Java 库中的 class) .
@Entity
@Dao
public abstract class A extends C {
@PrimaryKey
public int aid;
}
@Entity
@Dao
public abstract class B extends C {
@PrimaryKey
public int bid;
@Embedded
public A a;
}
public class C {
private long cid;
public void setCid(long cid) {this.cid = cid;}
public long getCid() {return this.cid;}
}
当我构建 Android 源代码时,我得到的错误是 error: Multiple fields have the same columnName: cid. Field names: cid, a > cid.
(如果所有 3 个 class 都放在 [=29= 中,我也可以重现错误] 应用)
我知道这个错误可以通过修改 class A
或 B
来修复。但是由于我正在自定义 Android 源,所以我假设 class A
或 B
不允许我更改。
是否可以通过修改class C
来修复它?
如果不需要序列化,将 private long cid;
更改为 private transient long cid;
似乎是一个解决方案 class C
.
遇到Android房间时遇到错误。我用下面的3class来说明。 Class A
和 B
是 Android 应用中的 2 个实体 class。 Class C 是 Android 框架中修改的 class(更具体地说,它是我试图自定义的核心 Java 库中的 class) .
@Entity
@Dao
public abstract class A extends C {
@PrimaryKey
public int aid;
}
@Entity
@Dao
public abstract class B extends C {
@PrimaryKey
public int bid;
@Embedded
public A a;
}
public class C {
private long cid;
public void setCid(long cid) {this.cid = cid;}
public long getCid() {return this.cid;}
}
当我构建 Android 源代码时,我得到的错误是 error: Multiple fields have the same columnName: cid. Field names: cid, a > cid.
(如果所有 3 个 class 都放在 [=29= 中,我也可以重现错误] 应用)
我知道这个错误可以通过修改 class A
或 B
来修复。但是由于我正在自定义 Android 源,所以我假设 class A
或 B
不允许我更改。
是否可以通过修改class C
来修复它?
如果不需要序列化,将 private long cid;
更改为 private transient long cid;
似乎是一个解决方案 class C
.