代码之家  ›  专栏  ›  技术社区  ›  BekaKK

领域非法状态异常:架构验证失败

  •  0
  • BekaKK  · 技术社区  · 6 年前

    我在我的项目中尝试使用领域数据库
    这是我的代码段

    应用程序中的Java代码

    public class CoreApplication extends Application {
    private static CoreApplication sInstance;
    public static final String F_PREFERENCE = "K_PREFERENCES";
    public static Realm realm;
    
    @Override
    public void onCreate() {
        super.onCreate();
        sInstance = this;
        LocaleManager.setLocale(this);
    
        realm.init(this);
        realm = Realm.getDefaultInstance();
        RealmConfiguration realmConfiguration = new RealmConfiguration.Builder()
                .name("mydb.realm")
                .schemaVersion(2)
                .build();
        Realm.setDefaultConfiguration(realmConfiguration);
    
    }
    
    @Override
    public void onTerminate() {
        Realm.getDefaultInstance().close();
        super.onTerminate();
    }
    
    }
    

    Java类

    public class CashierTable extends RealmObject implements Serializable {
    @Index
    @PrimaryKey
    private long id;
    private String name = "";
    private String password = "";
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
     }
    

    当我尝试在应用程序启动时调用此函数时,我有一个异常

     public static CashierTable getSingleCashierTable() {
        CoreApplication.realm = Realm.getDefaultInstance();
        AtomicReference<CashierTable> cashierTable=new AtomicReference<>();
        CoreApplication.realm .executeTransaction(realm -> {
            cashierTable.set(realm.where(CashierTable.class).findFirst());
        });
        return cashierTable.get();
    }
    

    这是我的日志结果

    java.lang.RuntimeException: Unable to create application com.unipay.posApp.CoreApplication: java.lang.IllegalStateException: Schema validation failed due to the following errors:
    - Type 'CashierTable' appears more than once in the schema.
    

    我还清了现金,但仍然有同样的问题。
    有人能解释一下我的密码有什么问题吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   EpicPandaForce    6 年前

    @RealmClass(name="...

    package io.package.first;
    
    public class Dog extends RealmObject {
    }
    
    package io.package.second;
    
    @RealmClass(name="SecondDog")
    public class Dog extends RealmObject {
    }