构建Android AOSP时遇到“错误:多个字段具有相同的columnName”

Posted

技术标签:

【中文标题】构建Android AOSP时遇到“错误:多个字段具有相同的columnName”【英文标题】:Met "error: Multiple fields have the same columnName" when building Android AOSP 【发布时间】:2022-01-21 08:51:37 【问题描述】:

遇到 android Room 时出现错误。我用下面3个类来说明。 AB 类是 Android 应用程序中的 2 个实体类。 C 类是 Android 框架中的一个修改类(更具体地说,它是我正在尝试自定义的核心 Java 库中的一个类)。

@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 个类都放在一个 Android 应用程序中,我也可以重现该错误)

我知道可以通过修改类AB 来修复此错误。但由于我正在自定义 Android 源代码,因此我假设我不允许更改 AB 类。

是否可以通过修改类C来修复它?

【问题讨论】:

【参考方案1】:

如果您不需要序列化类C,将private long cid; 更改为private transient long cid; 似乎是一种解决方案。

【讨论】:

以上是关于构建Android AOSP时遇到“错误:多个字段具有相同的columnName”的主要内容,如果未能解决你的问题,请参考以下文章

将外部JAR添加到Android AOSP构建时出错

为 Hikey970 构建 AOSP 时出错

在原生代码编译时找出 AOSP 中的 Android 版本?

向 AOSP 配置添加新符号时,silentoldconfig 无法构建

为旗鱼 (AOSP) 问题构建 android CopperheadOS

AOSP 使用 jni 库构建应用程序