gpt4 book ai didi

android - 在主应用程序和库中使用 Realm

转载 作者:搜寻专家 更新时间:2023-11-01 09:37:42 24 4
gpt4 key购买 nike

我正在尝试在库和主应用程序中使用 Realm,但它一直提示主应用程序中的模型不是模式的一部分。我基本上以与 Realm https://github.com/realm/realm-java/tree/master/examples/moduleExample 提供的示例类似的方式实现了所有内容我遇到了完全相同的问题。

错误:

io.realm.exceptions.RealmException: class package.models.User is not part of the schema for this Realm.
at io.realm.internal.RealmProxyMediator.getMissingProxyClassException(RealmProxyMediator.java:241)
at io.realm.RealmModuleMediator.getTableName(RealmModuleMediator.java:107)
at io.realm.RealmSchema.getTable(RealmSchema.java:296)
at io.realm.Realm.checkHasPrimaryKey(Realm.java:1469)
at io.realm.Realm.copyToRealmOrUpdate(Realm.java:902)

当我尝试将某些内容保存到 Realm 时会触发错误 - 即在登录后我试图保存用户的详细信息并且它崩溃了。

在主应用程序的应用程序类中,我有这段代码

   @Override
public void onCreate() {
super.onCreate();
this.mPrefs = getSharedPreferences(Constants.SHARED_PREFERENCES, 0);

instance = this;

// initialisations
Realm.init(this);
config = new AppConfig(mPrefs);

this.realm = Realm.getInstance(getRealmConfig());
}

public Realm getLibraryRealm(Object module, String name){
RealmConfiguration config = new RealmConfiguration.Builder()
.name(name)
.schemaVersion(1)
.modules(module)
.build();
return Realm.getInstance(config);
}

public RealmConfiguration getRealmConfig(){
return new RealmConfiguration.Builder()
.name(getPackageName())
.schemaVersion(1)
.modules(new RealmModule())
.build();
}

然后在库中我尝试获取一个 Realm 实例,如下所示:

 AppDataAccessor app = (AppDataAccessor) getApplication();
Realm realm = app.getRealm(new RealmModule(), Constants.REALM_NAME);

值得一提的是,AppDataAccessor 是一个由我的应用程序类实现的接口(interface)。

此外,主应用程序和库都具有如下定义的 Realm 模块:

@io.realm.annotations.RealmModule(library = true, classes = { DataSet.class, Field.class, Form.class })
public class RealmModule {
}

对于主应用:

@io.realm.annotations.RealmModule(classes = {Notification.class, User.class})
public class RealmModule {
}

非常感谢任何帮助,谢谢!

最佳答案

今天早上我发现了问题。

我正在为主应用程序和库定义一个 RealmModule。只有图书馆需要。

关于android - 在主应用程序和库中使用 Realm ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41810131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com