Примечание. Не удалось прочитать метаданные get kotlin для [Ljava.lang.Object; @ 79d6c4df - PullRequest
20 голосов
/ 17 марта 2019

Я получаю эту ошибку. Я работаю над проектом и в процессе разработки решил перейти на Android X.

Я получаю ошибку ниже:

Note: Failed to read get kotlin metadata for [Ljava.lang.Object;@79d6c4df

Существует такая же ошибка в файле сущностей и 4 таких же ошибки в соответствующем DAO.

Вот код DAO:

@Dao
public interface FlockDao{
    @Query("SELECT * FROM flock_table")
    LiveData<List<Flock>> getAllFlocks();

    @Query("SELECT * FROM flock_table WHERE fid IN (:flockIds) LIMIT 1")
    Flock loadFlockById(int[] flockIds);

    @Insert
    void insert(Flock flock);

    @Update
    void update(Flock flock);

    @Delete
    void delete(Flock flock);
}

И моя сущность:

@Entity
public class Flock{

    @PrimaryKey(autoGenerate = true)
    private int fid;

    @ColumnInfo(name = "user_id")
    private int uid;

    @ColumnInfo(name = "name")
    private String name;

    @ColumnInfo(name = "capacity")
    private int capacity;

    @ColumnInfo(name = "type")
    private String type;

    @ColumnInfo(name = "arrived")
    private Date arrived;

    .....rest of the code is omitted, there are constructor, setters and getters
}

Ответы [ 11 ]

0 голосов
/ 18 марта 2019

Я столкнулся с той же проблемой и исправил ее, переопределив методы equals & hashCode объекта.
Возможное решение для вашего случая:

@Override
public int hashCode() { return (27 * fid + (name!= null ? name.hashCode() : 0)); }

И

@Override
public boolean equals(@Nullable Object obj) {
    if (this == obj) return true;
    if (!(obj instanceof Flock)) return false;
    Flock flock = (Flock) obj;
    if(fid != flock.fid) return false;
    return name != null ? name.equals(flock.name) : flock.name == null;
}

вам также понадобится найти решение для использования даты в комнате, комната не имеет сборкив решении для переменной Date.

...