Android Room SQLite_ERROR 没有这样的表

2024-03-05

我正在尝试使用安卓房间 https://developer.android.com/topic/libraries/architecture/room.html并在跟随之后本教程 http://www.vogella.com/tutorials/AndroidSQLite/article.html当我尝试构建应用程序时,出现以下错误:

Error:(23, 27) error: There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such table: screen_items)

这个名字很好,应该存在。进行更改后,我清理了该项目并确保它已从设备中完全卸载。

In my Activity我正在初始化中的东西onCreate用这一行:

db = AppDatabase.getDatabase(getApplicationContext());

这是我的代码:

应用数据库

@Database(entities = {PermitItem.class}, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
  public static String DATABASE_NAME = "my_database";
  public final static String TABLE_ITEMS = "screen_items";

  private static AppDatabase INSTANCE;

  public abstract PermitItemDao permitItemModel();

  public static AppDatabase getDatabase(Context context) {
    if (INSTANCE == null) {
        INSTANCE = Room.databaseBuilder(context, AppDatabase.class, DATABASE_NAME).allowMainThreadQueries().build();
    }
    return INSTANCE;
  }

  public static void destroyInstance() {
    INSTANCE = null;
  }
}

许可项目

@Entity
public class PermitItem {
  @PrimaryKey(autoGenerate = true)
  public final int id;
  private String posX, posY, width, height, content, type;

  public PermitItem(int id, String posX, String posY, String width, String height, String content, String type) {
    this.id = id;
    this.posX = posX;
    this.posY = posY;
    this.width = width;
    this.height = height;
    this.content = content;
    this.type = type;
  }

  public static PermitItemBuilder builder(){
    return new PermitItemBuilder();
  }

  public static class PermitItemBuilder{
    int id;
    String posX, posY, width, height, content, type;


    public PermitItemBuilder setId(int id) {
        this.id = id;
        return this;
    }


    public PermitItemBuilder setPosX(String posX) {
        this.posX = posX;
        return this;
    }


    public PermitItemBuilder setPosY(String posY) {
        this.posY = posY;
        return this;
    }


    public PermitItemBuilder setWidth(String width) {
        this.width = width;
        return this;
    }


    public PermitItemBuilder setHeight(String height) {
        this.height = height;
        return this;
    }


    public PermitItemBuilder setContent(String content) {
        this.content = content;
        return this;
    }


    public PermitItemBuilder setType(String type) {
        this.type = type;
        return this;
    }

    public PermitItem build() {
        return new PermitItem(id, posX, posY, width, height, content, type);
    }
  }

  public long getId() {
    return id;
  }

  public String getPosX() {
    return posX;
  }

  public void setPosX(String posX) {
    this.posX = posX;
  }

  public String getPosY() {
    return posY;
  }

  public void setPosY(String posY) {
    this.posY = posY;
  }

  public String getWidth() {
    return width;
  }

  public void setWidth(String width) {
    this.width = width;
  }

  public String getHeight() {
    return height;
  }

  public void setHeight(String height) {
    this.height = height;
  }

  public String getContent() {
    return content;
  }

  public void setContent(String content) {
    this.content = content;
  }

  public String getType() {
    return type;
  }

  public void setType(String type) {
    this.type = type;
  }

  @Override
  public String toString() {
    return "PermitItem{" +
            "id=" + id +
            ", posX='" + posX + '\'' +
            ", posY='" + posY + '\'' +
            ", width='" + width + '\'' +
            ", height='" + height + '\'' +
            ", content='" + content + '\'' +
            ", type='" + type + '\'' +
            '}';
  }


}

许可项Dao

@Dao
public interface PermitItemDao {

  @Insert(onConflict = OnConflictStrategy.REPLACE)
  long addPermitItem(PermitItem permitItem);

  @Query("select * from " + TABLE_ITEMS)
  ArrayList<PermitItem> getAllPermitItems();

  @Query("select * from " + TABLE_ITEMS + " where id = :id")
  PermitItem getPermitItemById(int id);

  @Update(onConflict = OnConflictStrategy.REPLACE)
  void updatePermitItem(PermitItem permitItem);

  @Query("delete from " + TABLE_ITEMS)
  void removeAllPermitItems();
}

此错误的另一个原因可能是该实体未在 AppDatabase.java 文件中列出:

    @Database(entities = {XEntity.class, YEntity.class, ZEntity.class}, 
version = 1, exportSchema = true)

确保数据库文件夹中有最新的 db 文件,如果导出架构,请确保 app\schemas 下的 .json 架构文件已正确更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Room SQLite_ERROR 没有这样的表 的相关文章

  • 如何检测和管理来电(Android)?

    我想创建一个应用程序 可以检测来电并在一定数量的蜂鸣声 响铃 后启动我的自定义活动 我的意思是在 2 或 3 或 5 声蜂鸣声 响铃 后我的activity被触发 我该怎么做 Thanks 我认为您无法计算自来电开始以来电话响了多少次 无法
  • Android中如何使用洪水填充算法?

    我是Android编程新手 最近尝试编写一个简单的应用程序 仅供练习 在这个中 我想在用户点击时为图像着色 但我不知道如何开始 我读过不同的主题 其中提到使用 洪水填充 算法 我在网上找到了它 但我不知道如何将它放入我的简单应用程序中 我找
  • 如何使用 adb 在设备上安装现有的 Android 应用程序?

    在开发过程中 我使用类似的东西 adb s 192 168 1 77 5555 uninstall com myApp app adb s 192 168 1 77 5555 install path to android debug ap
  • 如何将画廊意图中的“打开”更改为“完成”?

    我使用以下意图打开画廊来选择多个图像和视频 Intent intent new Intent intent setType image video intent putExtra Intent EXTRA ALLOW MULTIPLE tr
  • React Native Android 发布 apk 是调试,而不是发布

    我有一个现有的 Android 应用程序 我已根据以下内容将 React Native v0 30 活动添加到项目中docs http facebook github io react native releases next docs i
  • Android中不同线程的数据库访问

    我有一个在 AsyncTasks 中从互联网下载数据的服务 它解析数据并将其存储在数据库中 该服务持续运行 当服务写入数据库时 活动会尝试从数据库中读取更改 我有一个数据库助手 有多种写入和读取方法 这会导致问题吗 可能尝试从两个不同的线程
  • 获取可以共享数据的应用程序列表

    此代码显示默认共享对话框 Intent sharingIntent new Intent Intent ACTION SEND sharingIntent setType text html sharingIntent putExtra a
  • 如何从android获取应用程序安装时间

    我尝试了一些方法 但没有成功 请帮助我 PackageManager pm context getPackageManager ApplicationInfo appInfo pm getApplicationInfo app packag
  • Android模拟器分配内存失败8

    当我尝试从 Eclipse 运行 WXGA800 模拟器时 出现如下错误 Failed to allocate memory 8 This application has requested the Runtime to terminate
  • 加快 ImageView 中的缩放功能

    我目前正在处理非常大的图像 7 10mb 由于多种原因无法调整大小或压缩 现在 我们的想法是在自定义 ImageView 中显示它们 使用户能够进行双击缩放 捏合缩放等 我使用这个库来完成这项工作 https github com Mike
  • 如何在android中的操作栏中创建Edittext?

    我们可以在操作栏中使用编辑文本吗 在阅读了 Google 中的大量资源后 我找不到如何在操作栏中创建编辑文本 谁能告诉我该怎么做 您可以设置自定义View为了ActionBar像这样 getActionBar setCustomView R
  • 在 AppAuth-Android 中注销

    我有一个用JAVA开发的Android应用程序 对于这个应用程序 我使用的是身份服务器4 https github com IdentityServer IdentityServer4作为我的 STS 一切正常 但我找不到任何注销的实现Ap
  • 通过列表视图检查动态生成的复选框时遇到问题

    我知道其他成员已经提出了这个问题 一些成员也给出了解决方案 但问题是我没有找到任何适合我的应用程序的解决方案 我正在创建一个应用程序 其中我有一个屏幕 它将显示动态列表视图 其中包含列表项 复选框和三个文本视图 一个用于候选人姓名 另外两个
  • Android:打开和关闭SQLite数据库

    我正在开发Android应用程序 我经常在其中访问本地数据库 该数据库可以从不同的主题访问 因此我遇到了数据库的协调问题 我使用以下open and close method public void open mDb mDbHelper g
  • 如何在附加的 sqlite 数据库中创建外键?

    我正在尝试创建一个 sqlite3 数据库作为模拟生产环境的测试环境 由于生产的设置方式 表处于多个模式中 我已经在 DBIx Class 中设置了类 使用 schema gt storage gt dbh do将数据库与架构附加在一起 并
  • Android:确定 2.2 及更高版本上的摄像头数量

    我的应用程序需要在 Android 2 2 及更高版本上运行 我需要一种方法来确定可用摄像机的数量 有很多帖子解决了这个问题 但我找不到一个有效的 一种解决方案是简单地检测操作系统版本 任何 2 2 版本的设备都仅限于 1 个摄像头 即使该
  • 更改Android菜单的背景颜色[重复]

    这个问题在这里已经有答案了 我正在尝试将标准浅灰色更改为浅绿色 似乎没有一个简单的方法可以做到这一点 例如 通过 Android 主题 但我找到了一个解决方法 如本页所述 http tinyurl com 342dgn3 http tiny
  • 如何在Android中解析xml类型的HTTPResponse

    我有一个 Android 应用程序 我使用 POST 方法来获取响应 这是我的代码 HttpResponse httpResponse httpclient execute httppost HttpEntity resEntity htt
  • 通过powershell运行ADB命令

    所以我尝试通过 powershell 脚本运行一些 ADB 命令 这是我正在尝试做的一个简单示例 adb shell echo in adb shell su root echo you are now root ls cd data da
  • 异步更新后更新Android Listview

    我正在将 HTTP 调用从同步调用转换为异步调用 由于连接在后台运行 因此当我最初设置列表适配器时 数据不存在 如何在 HTTP 调用后更新列表适配器 我尝试了一些方法 例如在数据发送回之前不设置适配器并再次设置适配器 但没有任何效果 这是

随机推荐

  • Google 脚本 JSON 嵌套数组到单元格

    我试图将以下 JSON 的一部分读入 google 表格 似乎有嵌套数组 我很难将其推入一个单元格 主要 JSON lineItems name advertisers 1558261 lineItems 12317016 advertis
  • Angular2:更改表单验证错误的边框颜色

    尝试更改错误消息的边框颜色 这是我的 html 代码 div class form group div
  • 从对话框片段上的图库中选择照片时光标上出现空指针异常

    我正在尝试从图库中选择照片DialogFragment 但我越来越nullpointerexception初始化时cursor 有什么想法为什么会出现此错误吗 下面是我的代码 if resultCode Activity RESULT OK
  • 连接图中的桥

    我有一个编程任务 不是家庭作业 我必须在图中找到桥梁 我自己做了一些工作 但无法想出任何令人满意的东西 所以我用谷歌搜索了它 我确实找到了一些东西 但我无法理解它所呈现的算法 有人可以看一下这段代码并给我一个解释吗 public Bridg
  • OpenCV - 两个二值图像之间的交集

    假设我有两个相同大小的二值图像 如何找到两个二值图像之间的交集 只有两个白色图像 灰色 255 上相同坐标 位置 的像素才会在输出图像 交集 上给出白色像素 您可以使用cvAnd http opencv itseez com modules
  • Java 构造函数是否返回对象引用?

    我知道 Java 的构造函数不能有任何类型 有趣的是它甚至不能是void 对此的合理解释是构造函数返回初始化对象的引用 MyClass myObject new MyClass 的构造函数myClass现在将在实例化对象后返回对象引用并将其
  • 我可以免费获得 sql2008 的 sql profiler 吗?

    是否可以免费获得 sql2008 的 sql profiler 还是必须有许可证才能获得 即它不能与 sql express 一起使用 您可以使用 SQL Developer 版本获取 SQL Profiler 但之前三个答案是怎么写的 S
  • 在 JavaScript 中访问 PHP 变量 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 JavaScript 或 jQuery 中访问 PHP 变量而不是 https stackoverflow com questions 1808108 how to access php va
  • 如何在服务器端渲染 Three.js?

    如何渲染 Three js 服务器端 目前我们的网站在本地使用 Three js 渲染玩家头像 但这会带来安全问题以及低端计算机的潜在错误 人们可以将代码注入控制台并让它渲染天知道什么 我研究过使用node js 但所有相关文档都很模糊并且
  • 直接从 Angular 客户端订阅 Azure 事件网格主题

    我正在开发一个需要响应来自第三方 WebHook 的事件的应用程序 我选择 Azure Event Grid 作为我选择的事件代理 Angular 作为前端 Asp Net Core 作为后端 在我当前的解决方案中 我使用 HTTP 触发的
  • firebase 中的用户组

    A User定义为 public class User private String email private String uid private List
  • 即使显式设置区域性,也无法在 .NET 7 中重现 .NET Framework 字符串排序顺序

    我在 NET Framework 4 8 上运行一些遗留代码 这些代码对一些产品代码进行排序并将结果放入单个数据库列中 它已经运行了多年 积累了我无法轻易修改的数据 我需要它在 NET 7 上同样工作 代码很简单 Code new 123
  • 如何解决 TypeError: on_delete 必须在 Django 模型上可调用?

    突然我收到一条错误消息TypeError on delete must be callable 我不知道如何解决这个错误 因为我没有看到field models ForeignKey default 1 on delete CASCADE
  • 在R6RS方案中,有没有办法获取当前环境以供eval使用?

    R6RS方案中有没有办法获取当前环境 然后将其作为第二个参数传递给eval 例如 下面的表达式要返回 9 问号应该是什么 let x 4 y 5 eval x y 不 R6RS中没有这样的东西 一些罕见的实现可能支持类似的东西 但绝大多数
  • 如何在 R 中高效地生成向量?

    假设您有一个函数 它接受一个数字作为输入并输出一个向量 但是 输出向量的大小取决于输入 并且您无法在函数之前计算它 例如 采取3N 1著名算法 https en wikipedia org wiki Collatz conjecture 该
  • 如何使用 Spray-json 将 JsArray 转换为案例类序列?

    我有一个变量 var movieArray movieText parseJson 属于哪一类 println movieArray getClass class spray json JsArray 如何将其转换为案例类序列 例如 cas
  • 如何强制 Azure 存储帐户为经典帐户

    我们最近使用 Azure 资源管理器和模板构建了基础设施和应用程序部署框架 为了部署云服务 需要首先设置一个Azure存储帐户 截至最近 这是通过运行来完成的 Switch AzureMode AzureResourceManager Ne
  • 基于视图的 NSOutlineView 中 NSTextField 的委托事件?

    我有一个基于视图的完美功能NSOutlineView在我的项目中使用正确的设置数据源 现在我想允许用户更改某些条目 所以我做了NSTextField在IB中可编辑 对于基于细胞的NSOutlineView你可以使用委托方法outlineVi
  • 如何覆盖 Visual Studio 的菜单加速器快捷方式?

    我是一名基于 Mac 的 Net 开发人员 因此多年来我养成了将某些常用功能重新映射到一组更 Macish 的键盘快捷键的习惯 CUT Ctrl X gt Alt X COPY Ctrl C gt Alt C PASTE Ctrl V gt
  • Android Room SQLite_ERROR 没有这样的表

    我正在尝试使用安卓房间 https developer android com topic libraries architecture room html并在跟随之后本教程 http www vogella com tutorials A