当前位置: 首页 > 面试题库 >

“对象”不是此领域的架构的一部分

乐欣可
2023-03-14
问题内容

当我打电话给 realm.where(MessageEventModel::class.java).findAll()

它抛出exepiton:这是错误

java.lang.IllegalArgumentException: MessageEventModel is not part of the schema for this Realm
                                                                          at io.realm.internal.modules.CompositeMediator.getMediator(CompositeMediator.java:172)
                                                                     at io.realm.internal.modules.CompositeMediator.getTableName(CompositeMediator.java:90)

这是我的应用程序类

class MyApp : Application() {

override fun onCreate() {
    super.onCreate()
    Realm.init(this)
    val realmConfiguration = RealmConfiguration.Builder()
            .deleteRealmIfMigrationNeeded()
            .name("my_db")
            .build()
    Realm.setDefaultConfiguration(realmConfiguration)
}
}

这是我的境界模型

class MessageEventModel : RealmObject{
  constructor()
  var message = ""
  constructor(message: String) : this(){
    this.message = message
  }
}

这是我尝试检索模型的地方

class AwesomeChatFragment : Fragment() {

private val realm: Realm by lazy { Realm.getDefaultInstance() }
private var notifications: RealmResults<MessageEventModel>? = null

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val view = inflater?.inflate(R.layout.activity_awesome_chat, container, false)
    notifications = realm.where(MessageEventModel::class.java).findAll()
    return view
}
}

gradle配置

apply plugin: 'com.android.application'
apply plugin: 'realm-android'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'


buildscript {
    ext.kotlin_version = '1.1.1'
    repositories {
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.android.tools.build:gradle:2.3.0'
        classpath 'com.google.gms:google-services:3.0.0'
        classpath "io.realm:realm-gradle-plugin:3.0.0"
    }
}

我尝试了所有可以在堆栈上找到的内容: 清理构建,重建项目,启用注释处理器,重新安装apk,使缓存无效/重新启动


问题答案:

问题在gradle文件中。仅使用插件的排序规则的问题,由于@EpicPandaForce的评论,问题已解决,我正在写答案,以帮助其他人,如果他们错过了@EpicPandaForce的评论答案

我更改了

apply plugin: 'com.android.application'
apply plugin: 'realm-android'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'realm-android'

就是这样,现在一切正常



 类似资料:
  • 问题内容: 当我尝试从Realm数据库中获取对象时,该应用程序崩溃了,并且出现以下错误: 这是我的活动 这是模型 有人知道如何解决它?公共类Haltes实现RealmModel { } 问题答案: 我的问题通过在所有其他插件之后声明来解决。 应用级Gradle

  • 问题内容: Android Studio 2.3.3 领域3.5.0 资源 RealmController.java SellingData.java 预期行为 获取领域默认实例。 实际行为 会崩溃。 问题答案: 如果您在设备上使用给定的架构创建一个Realm,则如果您开始修改架构(通过添加新类,添加新字段,删除字段,添加/删除,添加/删除,更改类型等),则您需要提供迁移(此处为示例),或者需要在

  • Realm中的以下Swift 3.0对象相当于什么? 常规雨燕 商店类别: 项目类别: 领域 我试过这个,但我得到一个错误: 错误:属性无法标记为动态,因为它的类型无法在Objective-C中表示 物品类别:没有错误

  • 3.2 ABP领域层 - 值对象 3.2.1 简介 用来描述领域的特殊方面、且没有标识符的一个对象,叫做值对象。 实体有自己的唯一标识,而值对象是没有标识的。如果两个实体的标识是不同的,那么它们是两个不同的实体,即使这两个实体的其它属性值是相同的。想象一下两个不同的人但是他们有相同的姓和名以及年龄。但是,他们的标识是不同的话,那么他们就是不同的两个人。但是,对于地址(这是一个典型的值对象)类,如果

  • 在设计服务层时,我是否应该在接口契约中使用我的域对象?例如: public void registerUser(字符串username,字符串realName) VS