java– 没有实现Room DataBase

java– 没有实现Room DataBase,第1张

概述我正在尝试谷歌Android架构组件的新房间ORM,我按照文档,但当我运行我的代码时,我得到java.lang.RuntimeException:找不到com.zeyad.usecases.app.UserDatabase的实现.UserDatabase_Impl不存在这是我的代码:Gradle项目:allprojects{repositories{jcenter()maven{ur

我正在尝试谷歌Android架构组件的新房间ORM,我按照文档,但当我运行我的代码时,我得到java.lang.RuntimeException:找不到com.zeyad.usecases.app.UserDatabase的实现. UserDatabase_Impl不存在

这是我的代码:

Gradle项目:

allprojects {repositorIEs {    jcenter()    maven { url 'https://jitpack.io' }    maven { url 'https://maven.Google.com' }}}

Gradle模块:

compile "androID.arch.lifecycle:runtime:1.0.0-Alpha1"compile "androID.arch.lifecycle:extensions:1.0.0-Alpha1"annotationProcessor "androID.arch.lifecycle:compiler:1.0.0-Alpha1"compile "androID.arch.persistence.room:runtime:1.0.0-Alpha1"annotationProcessor "androID.arch.persistence.room:compiler:1.0.0-Alpha1"

用户:

@Entity(tablename = "User")public class User {    static final String LOGIN = "login";    private static final String ID = "ID", AVATAR_URL = "avatar_url";    @PrimaryKey    @Serializedname(LOGIN)    @ColumnInfo(name = LOGIN)    String login;    @Serializedname(ID)    @ColumnInfo(name = ID)    int ID;    @Serializedname(AVATAR_URL)    @ColumnInfo(name = AVATAR_URL)    String avatarUrl;    public User() {    }    public User(String login, int ID, String avatarUrl) {        this.login = login;        this.ID = ID;        this.avatarUrl = avatarUrl;    }    public static boolean isEmpty(User user) {        return user == null || (user.login == null && user.avatarUrl == null);    }    public String getLogin() {        return login;    }    public voID setLogin(String login) {        this.login = login;    }    public int getID() {        return ID;    }    public voID setID(int ID) {        this.ID = ID;    }    public String getAvatarUrl() {        return avatarUrl;    }    public voID setAvatarUrl(String avatarUrl) {        this.avatarUrl = avatarUrl;    }    @OverrIDe    public boolean equals(Object o) {        if (this == o) return true;        if (o == null || getClass() != o.getClass()) return false;        User user = (User) o;        return ID == user.ID && (login != null ? login.equals(user.login) : user.login == null                && (avatarUrl != null ? avatarUrl.equals(user.avatarUrl) : user.avatarUrl == null));    }    @OverrIDe    public int hashCode() {        int result = login != null ? login.hashCode() : 0;        result = 31 * result + ID;        result = 31 * result + (avatarUrl != null ? avatarUrl.hashCode() : 0);        return result;    }}

UserDatabase:

@Database(entitIEs = {User.class}, version = 1)public abstract class UserDatabase extends RoomDatabase {    public abstract RoomBaseDao roomBaseDao();}

RoomBaseDao:

@Daopublic interface RoomBaseDao {    @Insert(onConflict = OnConflictStrategy.REPLACE)    voID insertItemsReplace(User... objects);    @Update(onConflict = OnConflictStrategy.REPLACE)    voID updateItemsReplace(User... objects);    @Delete    voID deleteItem(User object);}

应用onCreate:

UserDatabase gDb = Room.databaseBuilder(this, UserDatabase.class, "test-db").build(); // throws the exception above

提前致谢.

解决方法:

在我的情况下,我使用旧版本的ButterKnife,它需要androID-apt插件.所以我更新了ButterKnife(现在使用注释处理器)并删除了Gradle文件中的插件声明.

可能这不是你的问题,但也许它会帮助别人.

总结

以上是内存溢出为你收集整理的java – 没有实现Room DataBase全部内容,希望文章能够帮你解决java – 没有实现Room DataBase所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1108681.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存