2016-03-01 110 views
1

這是我的模型類我提醒領域數據庫問題。 - 無默認領域配置是發現 -

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; 
    } 
} 

這是我的配置類獲取上下文「因爲我不知道什麼是 問題,這個類:(

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); 
} 

,這是增加一些提醒祕道的一部分

//這是如此困難類的事業王國對象沒有找到 數據庫上下文

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; 
    } 
} 
+0

您是否在某處調用了'Realm.getDefaultInstance'?如果你這樣做,'Realm.getInstance(RemindMe.getInstance());'會拋出,因爲你給了兩個不同的Realm,它們具有不同的配置,但名稱和路徑相同。 – beeender

+0

我無法理解你,我需要爲我的領域聲明一個默認實例? –

+0

但是你已經完成了'RemindMe.onCreate()'。異常拋出的位置和異常消息是什麼? – beeender

回答

4

您需要在清單註冊您的應用程序類:

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

一旦這樣做,你應該能夠使用Realm.getDefaultInstance()整個應用程序沒有麻煩。