2017-03-22 3 views
1

realm.where(MessageEventModel::class.java).findAll()"オブジェクト" は、このレルムのスキーマの一部ではない、私は呼ん

それはexcepitonスロー: が、これは誤り

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) 

である、これは私のApplicationクラスである

class MyApp : Application() { 

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

これは私のRealm Modelです

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を元に戻す、キャッシュを無効にする/再起動

+0

正常に動作します。これが役立つかどうか確認してください:https://github.com/realm/realm-java/issues/2491 – maciekjanusz

+3

** 'realm-android'の前に' kotlin-android'と 'kotlin-android-extensinos'を適用してください – EpicPandaForce

+0

天才<3おかげで、それは動作します –

答えて

6

問題はどこにあるの?彼らは@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' 

に、今ではすべては私が(異なるレルムバージョン)いくつかの時間前にこの問題を抱え

関連する問題