当前位置: 首页 > 知识库问答 >
问题:

房间IllegalArgumentException:Intnant不能转换为元素

郎和志
2023-03-14

我在尝试编译项目时出现了这个错误:

@Entity(tableName = "users")
public class SerializedUser {

    @PrimaryKey(autoGenerate = true)
    private int id;

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

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

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

    public SerializedUser(int id, String firstName, String lastName, String username) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
        this.username = username;
    }

    public int getId() {
        return id;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public String getUsername() {
        return username;
    }
}

@android.arch.persistence.room.Database(entities = {SerializedUser.class}, version = 4)
public abstract class Database extends RoomDatabase {
    public abstract UserDao userDao();

    private static final String DATABASE_NAME = "weather";

    // For Singleton instantiation
    private static final Object LOCK = new Object();
    private static volatile Database i;

    public static Database init(Context context) {
        if (i == null) {
            synchronized (LOCK) {
                if (i == null) {
                    i = Room.databaseBuilder(context.getApplicationContext(),
                            Database.class, Database.DATABASE_NAME)
                            .fallbackToDestructiveMigration().build();
                }
            }
        }
        return i;
    }

    public static boolean isInited(){
        return i != null;
    }

    public static Database getInstance(){
        if(i == null)
            throw new NullPointerException("Database.getInstance called when Database not initialized");
        return i;
    }
}

@Dao
public abstract class UserDao {

    Converters converters;

    public void inject(Converters converters) {
        this.converters = converters;
    }

    @Insert(onConflict = REPLACE)
    public abstract void saveNow(SerializedUser user);

    @Delete
    public abstract void deleteNow(int id);

    @Query("DELETE FROM users")
    public abstract void deleteAllNow();

    @Query("SELECT * FROM users")
    public abstract List<SerializedUser> getAllNow();

    @Query("SELECT * FROM users ORDER BY last_name ASC")
    public abstract LivePagedListProvider<Integer, SerializedUser> usersByLastName();
}

共有1个答案

顾高翰
2023-03-14

移除

@Delete
public abstract void deleteNow(int id);

从你的Dao它会工作

 类似资料:
  • 我一直在尝试实现这个共享元素转换,并在单击转换时不断出现“java.lang.IllegalArgumentException:共享元素不能为null”错误。请帮忙。 这是下面给出的MainActive onCreate方法。请检查我的代码。 这是recyclerView的onClickListener。 图像的过渡名称相同。这里的bug修复在使用共享元素的活动转换中出现问题并不是问题所在。 我卡

  • 问题内容: 因此,我今天晚上将XCode更新为7.3。 在我的一个项目中,在设置字体的几个标签上出现以下错误: 编辑: 这是我的导航栏中标题视图的代码: 这是我的UILabel属性字符串的代码: 在我整个项目中,只有两个文件会发生这种情况。 我打开了另一个项目,但是即使在此我也确实为多个标签设置了字体,我也可以构建并运行它而没有任何错误。 知道为什么会这样吗? TIA! 问题答案: 在SO的其他地

  • 我刚开始编程,我总是收到错误消息,“不兼容的类型,int不能转换为int[]”,问题是如果R1和R2的长度相等,就把它们加在一起,如果不是,打印一条消息,说“数组必须是相同的长度”,如果这很重要,不确定我在哪里出错了,任何帮助都将非常感谢

  • 我在HackerRank(对角线差异)上做这个问题,我现在面临一个问题。 以下是问题的链接: https://www.hackerrank.com/challenges/diagonal-difference/problem 问题是,我总是得到一个错误:。 我尝试初始化变量j,但这也不能解决问题。 下面是我的代码:

  • 我目前正在开发一个基于文本的游戏,在游戏中,你可以在房间之间移动,并在所说的房间中拾取物品,直到你到达“老板”房间。到目前为止,我已将所有内容正确打印出来,并将其显示在房间中是否有物品、物品是什么以及您所在的房间中。 我目前的问题是,它不是根据用户输入来改变房间。例如,您从Sepulture开始。用户输入North会将您的位置带入兵营。然而,这并不能让我远离seculture。 我的代码如下: 感