1

I have a database :

@Database(entities = {Bas.class, Cit.class}, version = 1)
public abstract class DB extends RoomDatabase {

    private static final String DB_NAME = "db";

    private static DB Database;



    public static DB getDatabase(Context context){

        if (Database == null){
            Database = Room.databaseBuilder(context, Database.class, DB_NAME)

                    .build();
        }

        return Database;





    }

2 Answers 2

2

Modify DB class

use synchronized keyword

private static DB sInstance;

public static DB getDatabase(final Context context) {
    if (sInstance == null) {
        synchronized (DB.class) {
            if (sInstance == null) {
                sInstance = Room.databaseBuilder(context, DB.class, DB_NAME)
                        .build();
            }
        }
    }
    return sInstance;
}

And initialize db in activity:

DB db = DB.getDatabase(getApplicationContext());

Don't forget to define the room dependencies in app.gradle:

implementation "android.arch.persistence.room:runtime:LatestVersion"

annotationProcessor "android.arch.persistence.room:compiler:LatestVersion"
Sign up to request clarification or add additional context in comments.

Comments

0

I just changed

annotationProcessor "android.arch.persistence.room:compiler:VERSION"

to

kapt "android.arch.persistence.room:compiler:VERSION" 

and resolved it

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.