Как исправить «Невозможно предоставить нулевой контекст для базы данных» - Android Room - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь создать базу данных Room, но там говорится, что Context имеет значение null, хотя я пробовал одни и те же классы в разных приложениях, и он работает, как задумано.

@Database(entities = {City.class, User.class}, version = AppDatabase.DB_VERSION, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {

    static final int DB_VERSION = 1;
    private static AppDatabase INSTANCE;
    private static final String DATABASE_NAME = "my_db";

    public abstract UserDao userDao();
    public abstract CityDao cityDao();

    public static AppDatabase getInstance() {
        if (INSTANCE == null) {
            INSTANCE = Room.databaseBuilder(RoomApp.getAppContext(), AppDatabase.class, DATABASE_NAME)
                    .allowMainThreadQueries()
                    .build();
        }

        return INSTANCE;
    }
}
public class RoomApp extends Application {
    private static WeakReference<RoomApp> appContext;

    @Override
    public void onCreate() {
        super.onCreate();
        appContext = new WeakReference<>(this);

        AppDatabase.getInstance(); //this will init & fill db
    }

    public static Context getAppContext() {
        return appContext != null ? appContext.get() : null;
    }
}

Всякий раз, когда я получаю доступ к AppDatabase.getInstance ();Я получаю сообщение об ошибке: «Невозможно предоставить нулевой контекст для базы данных».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...