Julio Cuellar
Julio Cuellar

Reputation: 103

Realm database issue. -No default Realm Configuration was found-

This is my model class for my reminds

public class Remind extends RealmObject {

    @Required
    private String descripcion;
    @Required
    private String fecha;
    @Required
    private String hora;
    @Required
    private String titulo;
    @PrimaryKey
   private String id;

   public Remind() {}

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public String getFecha() {
        return fecha;
    }

    public void setFecha(String fecha) {
        this.fecha = fecha;
    }

    public String getHora() {
        return hora;
    }
    public void setHora(String hora) {
        this.hora = hora;
    }
}

this is my config class for obtain context 'cause i don't know what is the problem with this class :(

public class RemindMe extends Application {

    @RealmModule(classes = {Remind.class})
    public class SimpleRealmModule {}
    private static RemindMe instance;
    @Override
    public void onCreate() {
        super.onCreate();
       RealmConfiguration config = new RealmConfiguration.Builder(this).name("RemindMe.DB").build();
    Realm.setDefaultConfiguration(config);
}

and this is a part of mi DAO for add some reminds

//this is so problematic class 'cause the Realm object don't find the database context

public class RemindsDAO {

   static boolean flag = false;

    public boolean agregarRecordatorio(final Remind remind){
            final Realm realm = Realm.getDefaultInstance();
            realm.beginTransaction();
            realm.executeTransaction(new Realm.Transaction() {
                @Override
                public void execute(Realm realm) {
                    Remind rem = realm.createObject(Remind.class);
                    rem.setId(UUID.randomUUID().toString());
                    rem.setTitulo(remind.getTitulo());
                    rem.setDescripcion(remind.getDescripcion());
                    rem.setHora(remind.getHora());
                    rem.setFecha(remind.getFecha());
                }
            }, new Realm.Transaction.Callback() {
                @Override
                public void onSuccess() {
                    realm.commitTransaction();
                     RemindsDAO.flag = true;
                }

                @Override
                public void onError(Exception e) {
                     flag = false;
                }
            });

        return flag;
    }
}

Upvotes: 1

Views: 1024

Answers (1)

Joseph Junior Sfeir
Joseph Junior Sfeir

Reputation: 355

You need to register your Application class in the Manifest:

<application
    android:name=".RemindMe">
   your activities go here...
</application>

Once done you should be able to use Realm.getDefaultInstance() throughout the app with no hassle.

Upvotes: 4

Related Questions