title: Android Room SQLite_ERROR no such table
body: <p>I'm trying my hand at using <a href="https://developer.android.com/topic/libraries/architecture/room.html" rel="noreferrer">Android Room</a> and after following <a href="http://www.vogella.com/tutorials/AndroidSQLite/article.html" rel="noreferrer">this tutorial</a> I'm getting the following error when i try to build the app:</p>
  
  <p><code>Error:(23, 27) error: There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such table: screen_items)</code></p>
  
  <p>The name is fine and should exist. After making my changes I cleaned the project and made sure it was completely uninstalled from the device.</p>
  
  <p>In my <code>Activity</code> I'm initialising the things in <code>onCreate</code> with this line:</p>
  
  <pre><code>db = AppDatabase.getDatabase(getApplicationContext());
  </code></pre>
  
  <p>Here is my code:</p>
  
  <p><strong>AppDatabase</strong></p>
  
  <pre><code>@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;
    }
  }
  </code></pre>
  
  <p><strong>PermitItem</strong></p>
  
  <pre><code>@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 + '\'' +
              '}';
    }
  
  
  }
  </code></pre>
  
  <p><strong>PermitItemDao</strong></p>
  
  <pre><code>@Dao
  public interface PermitItemDao {
  
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    long addPermitItem(PermitItem permitItem);
  
    @Query("select * from " + TABLE_ITEMS)
    ArrayList&lt;PermitItem&gt; 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();
  }
  </code></pre>