1

I am getting following exception for android room database

java.lang.IllegalArgumentException: @androidx.room.Database does not define an element views()

I tried to search for any solution on SO but was not able to find any. Can anyone explain whats this error related to ?

I am using java only in My room database.I am not using kotlin. Library versions

roomVersion = '2.2.1'
archLifecycleVersion = '2.1.0'

Defined Entities,Dao and a class that extends roomdatabase

public static TncWalletAppDatabase getDatabase(final Context context) {
    if (INSTANCE == null) {
        synchronized (TncWalletAppDatabase.class) {
            if (INSTANCE == null) {
                INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
                        TncWalletAppDatabase.class, "tnc_app_database")
                        .addCallback(sRoomDatabaseCallback)
                        .allowMainThreadQueries()
                        .build();
            }
        }
    }
    return INSTANCE;
}

This is my method to initialize the db. Any help on this is really appreciated.

Database class :

@Database(entities = {Merchant.class, MerchantProfile.class, Receipt.class, ReceiptItems.class,TncTransaction.class}, version = 1)

public abstract class TncWalletAppDatabase extends RoomDatabase {

    private static TncWalletAppDatabase INSTANCE;

    public abstract MerchantDao mMerchantDao();

    public abstract MerchantProfileDao mMerchantProfileDao();

    public abstract ReceiptDao mReceiptDao();

    public abstract ReceiptItemsDao mReceiptItemsDao();

    public abstract TncTransactionDao mTncTransactionDao();


    public static TncWalletAppDatabase getDatabase(final Context context) {
        if (INSTANCE == null) {
            synchronized (TncWalletAppDatabase.class) {
                if (INSTANCE == null) {
                    INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
                            TncWalletAppDatabase.class, "tnc_app_database")
                            .addCallback(sRoomDatabaseCallback)
                            .allowMainThreadQueries()
                            .build();
                }
            }
        }
        return INSTANCE;
    }

    private static RoomDatabase.Callback sRoomDatabaseCallback = new RoomDatabase.Callback() {

        @Override
        public void onCreate(@NonNull SupportSQLiteDatabase db) {
            super.onCreate(db);
            // database trigger for tnc_transaction table
            new CreateDatabaseTriggerOnTncTransaction().execute();
        }

    };



    private static class CreateDatabaseTriggerOnTncTransaction extends AsyncTask<Void, Void, Void> {

        @Override
        protected Void doInBackground(final Void... params) {
            /**
             * Create database trigger when the tnc transaction table is created.
             */
            SupportSQLiteDatabase supportSQLiteDatabase = INSTANCE.getOpenHelper().getWritableDatabase();
            if( supportSQLiteDatabase != null ) {
                String TABLE_NAME = "tnc_transaction";
                supportSQLiteDatabase.execSQL(
                        "CREATE TRIGGER IF NOT EXISTS delete_" + TABLE_NAME + "_logs_max " +
                                "BEFORE INSERT ON " + TABLE_NAME + " " +
                                "WHEN (SELECT COUNT(*) FROM " + TABLE_NAME + ") > "
                                + TncTransactionDao.MAX_ROW_COUNT +
                                " " + "   BEGIN DELETE FROM " + TABLE_NAME + " WHERE id  = "
                                + "(SELECT MIN(id) FROM " + TABLE_NAME + "); " +
                                "END;");
            }
            return null;
        }
    }
}
Ameya721
  • 171
  • 1
  • 9

1 Answers1

0

Add this to your build.grade file?

dependencies {
  def room_version = "2.2.5"

  implementation "androidx.room:room-runtime:$room_version"
  annotationProcessor "androidx.room:room-compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor

ref# https://developer.android.com/training/data-storage/room

JazzyJ
  • 331
  • 1
  • 2
  • 9