Ошибка «Вызовите« Realm.init (Context) »перед созданием RealmConfiguration» - PullRequest
0 голосов
/ 03 октября 2019
private void addAction() {

        String what = mInputWhat.getText().toString();
        long now = System.currentTimeMillis();

       Realm.init(getContext());

        RealmConfiguration configuration = new RealmConfiguration.Builder().build();
        Realm.setDefaultConfiguration(configuration);


        Realm realm = Realm.getDefaultInstance();
        Drop drop = new Drop(what, now, 0, false);
        realm.beginTransaction();
        realm.copyToRealm(drop);
        realm.commitTransaction();
        realm.close();
    }
}

Здесь, когда я не создаю контекст, происходит сбой приложения, но когда я создаю контекст с помощью Realm.init (getContext ()), кнопка «Добавить» не работает введите описание изображения здесь

1 Ответ

1 голос
/ 22 октября 2019

Вы должны инициировать Realm в классе, который расширен из кода Application.see ниже:

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        Realm.init(this);

        RealmConfiguration config = new RealmConfiguration.Builder()
                .name("appName.realm")
                .schemaVersion(1)
                .deleteRealmIfMigrationNeeded()
                .build();
        Realm.setDefaultConfiguration(config);
    }
}

после того, как вы можете вызывать класс Realm где угодно

не забудьте добавить эту строку вВаш заявочный тег приложения

android:name="com.example.MyApplication"

...