首页 > 解决方案 > 注意:无法读取 [Ljava.lang.Object;@79d6c4df 的获取 kotlin 元数据

问题描述

我不断收到此错误。我正在做一个项目,在开发过程中,我决定迁移到 Android X。

我收到以下错误:

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

实体文件中有相同的错误,相应的 DAO 中也有 4 个相同的错误。

这是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
}

标签: androidandroid-gradle-pluginandroid-roomandroidx

解决方案


我将我的房间依赖更新为 2.1.0-alpha05 并遇到了同样的问题。回到 2.1.0-alpha04 解决了我的问题。

implementation 'androidx.room:room-runtime:2.1.0-alpha04'
annotationProcessor 'androidx.room:room-compiler:2.1.0-alpha04'

更新 如果您真的想使用 Room 版本 2.1.0-alpha05,请将以下依赖项添加到您的项目存储库中:

maven { url 'https://kotlin.bintray.com/kotlinx/' }

参考:AndroidX Room 发行说明

更新 我尝试了 2.1.0-alpha06。

implementation 'androidx.room:room-runtime:2.1.0-alpha06'
annotationProcessor 'androidx.room:room-compiler:2.1.0-alpha06'

然后我将依赖添加到我的项目存储库中,

maven { url 'https://kotlin.bintray.com/kotlinx/' }

没有错误,但它已编译。我在真实设备上测试了我的应用程序数周,运行我的应用程序没有任何问题。我的房间数据库工作正常。


推荐阅读