[Solved] I cannot get the app to construct an sqlite database


You aren’t, according to the code, acessing(opening) the database. You are just instantiating the DatabseHelper in MainActivity i.e. mydb = new CrdDBHelper(this);

It is not until an attempt is made to open the database (which is frequently implicit) that the database is actually created.

A simple way would be to force an open when instantiating the database. e.g. call the getWritableDatabase() method in the constructor, like :-

public CrdDBHelper(@Nullable Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    getWritableDatabase();
}

Perhaps at that time set an SQLiteDatabase object with the returned SQLiteDatabase, so your Database Helper (CrdDBHelper.java) could be :-

public class CrdDBHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME = "CardGame.db";
    public static final int DATABASE_VERSION = 1;

   SQLiteDatabase mDB;

    public CrdDBHelper(@Nullable Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        mDB = this.getWriteableDatabase();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CrdDBContract.GameEntry.SQL_CREATE_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}
  • as the onCreate method is called when (and ONLY when) the database is created the Game table will then be created.

0

solved I cannot get the app to construct an sqlite database